4
我有了一个需要的专业,如在模板成员函数模板类:专门研究模板类的模板成员函数?
template <typename T>
class X
{
public:
template <typename U>
void Y() {}
template <>
void Y<int>() {}
};
Altough VC可以正确处理此,apperantly这不是标准,GCC抱怨:explicit specialization in non-namespace scope 'class X<T>'
我尝试过:
template <typename T>
class X
{
public:
template <typename U>
void Y() {}
};
template <typename T>
// Also tried `template<>` here
void X<T>::Y<int>() {}
但是这会导致VC和GCC抱怨。
什么是正确的方法来做到这一点?
感谢。不幸的是,我的模板参数实际上是一个整数(如'模板'),不认为它会有所作为。有任何想法吗? –
uj2
2010-06-14 19:56:06
只是用'int N'替换'typename T'和'U',而且你服务得很好:)这就像打字方式一样工作。 – 2010-06-14 19:58:25
@ JohannesSchaub-litb,如果'T'和一个非类型模板arg都被*使用了?如在类中,类是'template',但函数是'template ',并且您希望专门为该函数上的'<0>',同时保持类在'T'上打开。那可能吗?谢谢。 –
WhozCraig
2014-09-09 11:51:32