TRemoveConst<> is modeled after boost's implementation. It allows you to take a templatized type such as 'const Foo*' and use const_cast to convert that type to 'Foo*' without knowing about Foo. MutablePtr = const_cast< RemoveConst< ConstPtrType >::Type >( ConstPtr );base class for call traits. Used to more easily refine portions when specializing