7

テンプレートテンプレートの仕様は次のようになります。

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

このテンプレートの全体的(または部分的)な特殊化をどのように作成する必要がありますか?これは可能ですか?

4

2 に答える 2

5

このような:

#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;
}
于 2010-08-13T16:53:25.873 に答える
3

これの専門分野は、たとえば、次のようになります。

template<>
struct MyTemplate<std::auto_ptr> {
   // ...
};
于 2010-08-13T16:51:20.803 に答える