Для параметрического класса C я хочу всегда получать "примитивный" тип независимо от указателей, константных или ссылочных модификаторов.
template<typename __T>
class C
{
public:
typedef std::some_magic_remove_all<__T>::type T;
}
int main()
{
C<some_type>::type a;
}
Например, для some_type, равного:
-
int& -
int** -
int*& -
int const && -
int const * const - и т.д.
Я хочу, чтобы a всегда имел тип int. Как я могу это достичь?