【发布时间】:2011-12-11 00:29:50
【问题描述】:
环境:Microsoft Visual Studio 2010
编码标准:C++0x 兼容
我有一个类模板
template <typename T1, int I>
class A
{
public template <typename T2> void f(T2 x);
/*...*/
};
template <typename T1, int I>
template <typename T2>
void A<T1, I>::f(T2 x)
{
/*...*/
}
上述类的部分特化
template <int I>
class A<char, I>
{
public template <typename T2> void f(T2 x);
/*...*/
};
那么我可以像下面这样在部分特化的类中特化成员函数吗?
template <int I>
template <>
void A<char, I>::f<double>(double x)
{
}
谢谢!
注意:我不是在研究它,而是在思考它是否适用。如果您了解规则,则可以轻松评分。
【问题讨论】:
-
public void?你真的尝试编译这个吗? -
@Pubby 谢谢。对我的问题有什么建设性的想法吗?
-
你仍然没有尝试编译...提示 C++ 在可访问性规范方面不是 C#。
-
出于某种原因,我记得这不可能在课堂外。其他人可以告诉你为什么/为什么不。
-
@Xeo 嗯...那是什么?如果没有完全专门化它的类,也许就不能专门化成员函数?
标签: c++ visual-studio-2010 templates generics stl