模板的模板規範是這樣的:模板模板總專業化
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