模板的模板规范是这样的:模板模板总专业化
template < template <class> class T >
struct MyTemplate
{
};
我应该如何创建一个总(或部分)专门针对此模板? 这可能吗?
模板的模板规范是这样的:模板模板总专业化
template < template <class> class T >
struct MyTemplate
{
};
我应该如何创建一个总(或部分)专门针对此模板? 这可能吗?
像这样:
#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;
}
GMan,有一种强制MyTemplate专业化的方法T吧应该期待什么? – scooterman 2010-08-13 17:02:35
@scooterman:那么在你的课堂上,你只需要使用'bar
这方面的一个专业化会,例如是:
template<>
struct MyTemplate<std::auto_ptr> {
// ...
};
...某处精彩!我等不及了! – 2010-08-13 16:46:34
谁在世界投票结束,为什么?这似乎是一个完全合法的,热门的问题。 – 2010-08-13 16:51:23
@Jerry:如果你看到问题的前30秒(投票的地方),这是有道理的。这只是代码直到'{'毫无疑问。我发表了评论:“'}; //你在哪里用这个?'”约翰回答说。但现在已经修复了。 :) – GManNickG 2010-08-13 16:54:31