Re: Шаблон функции как параметр шаблона
От: Кодт Россия  
Дата: 25.01.04 03:44
Оценка:
Здравствуйте, <Аноним>, Вы писали:

<>

Вообще, шаблон может быть параметризован шаблоном.
template< class A, template<class> class B >
class YourTemplateClass
{
    typedef B<int> bint_type;
};

class SetOfBTypes
{
    template<class T> class BFirst { ... };
    template<class T> class BSecond { ... };
    // от этих классов требуется, чтобы они были моделью "шаблон с одним параметром - классом"
    
    typedef YourTemplateClass< char, BFirst > FirstClass;
};

но не все компиляторы это понимают и любят.

Выход из ситуации — это упрятывание шаблона вглубь.
template< class A, class BWrapper >
{
    typedef typename BWrapper::B<int> bint_type;
};

class SetOfBTypes
{
    struct BFirst
    { template<class T> class B { ... }; };
    struct BSecond
    { template<class T> class B { ... }; };
    // от этих классов требуется, чтобы они были моделью "класс с публичным шаблонным типом B<class>"
    
    typedef YourTemplateClass< char, BFirst > FirstClass;
};
... << RSDN@Home 1.1.0 stable >>
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.