Здравствуйте, drbasic, Вы писали:
D>и возможно ли это вообще?
Возможно, например так:
template<class T>
class array_traits;
template<class E, int Size>
class array_traits<E[Size]>
{
public:
typedef E element_type;
static const int size = Size;
};
template<class T>
class ClassA
{
public:
typedef typename array_traits<T>::element_type ElementType;
};
Проверка:
template<class A, class B>
class check;
template<class T>
class check<T, T> {};
typedef int ClassB[5];
check<ClassA<ClassB>::ElementType, int> A;