как получить тип элемента массива
От: drbasic  
Дата: 21.09.04 01:56
Оценка:
Задча такая: имеется шаблон
template <typename T>
class ClassA{
typedef ?????? ElementType;
....
};
ему в качестве параметра шаблона передается массив (к примеру ClassB[10])
как можно выразить тип элемента массива, т.е. получить в ElementType тип ClassB?
и возможно ли это вообще?
Re: как получить тип элемента массива
От: sergey_shandar США http://getboost.codeplex.com/
Дата: 21.09.04 04:04
Оценка: 3 (1)
Здравствуйте, 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;
getboost.codeplex.com
citylizard.codeplex.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.