общая специализация шаблона шаблона

Спецификация шаблона шаблона выглядит следующим образом:

template < template < class > class T >
struct MyTemplate
{
};

Как мне создать полную (или частичную) специализацию для этого шаблона? Возможно ли это?

7
задан scooterman 8 February 2012 в 08:32
поделиться

2 ответа

Вот так:

#include <iostream>

template <typename T>
struct foo{};

template <typename T>
struct bar{};

template < template < class > class T >
struct MyTemplate
{
    static const bool value = false;
};

template <>
struct MyTemplate<bar>
{
    static const bool value = true;
};


int main(void)
{
    std::cout << std::boolalpha;
    std::cout << MyTemplate<foo>::value << std::endl;
    std::cout << MyTemplate<bar>::value << std::endl;
}
5
ответ дан 7 December 2019 в 05:15
поделиться

Это может быть специализация, например:

template<>
struct MyTemplate<std::auto_ptr> {
   // ...
};
3
ответ дан 7 December 2019 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: