Для параметрического класса 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
. Как я могу это достичь?