Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Перегрузка шаблонных классов


Автор: Ivan. 26.5.2012, 08:11
Подскажите, как перегрузить шаблонный класс и вообще возможно ли это?
Вот 2 шаблона, но они конфликтуют друг с другом:
Код

template<typename T, const T& ...m> struct PROG{static const T* PROGMEM v[];};
template<typename T, const T& ...m> const T* PROG<T, m...>::v[] = {&m...};

template<char ...m> struct PROG{static const char PROGMEM v[];};
template<char ...m> const char PROG<m...>::v[] = {m...};

Автор: disputant 26.5.2012, 14:22
Но это ж не функции... :(

Может, стоит обернуть в пространства имен?..

Автор: boostcoder 26.5.2012, 14:37
конфликтуют, ибо второй шаблон более универсальный.

не зная задачи, сложно что-то порекомендовать... посмотри на http://www.boost.org/doc/libs/1_49_0/libs/utility/enable_if.html.

Автор: boostcoder 26.5.2012, 14:56
если ты хочешь сделать специализацию шаблона для конкретных типов, смотри главу 3.2.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)