如何使用 int 参数为特定模板部分特化模板函数
How to partially specialize a template function for a specific template with int paramater
我找不到似乎可以回答这个问题的另一个问题。
我有一个模板定义如下:
template <int N> class classA;
//class A 的正文与这个问题真的无关。
现在我有了第二个 class 模板:
template<typename T> class classX
{
public:
static const unsigned number;
}
默认实现:
template<typename T> classX<T>::number = sizeof(T);
但是,如果与 classA 一起使用,我想为 classX 设置一个 "specialization"。
但是对于 all/any 模板参数 N。
我该怎么做?
感谢您的回复:)
已编辑:更正语法错误:)
您将使用:
template <int N> class classX<classA<N>>
{
// Add the details of the specialization
};
顺便说一句,您发布的代码有语法错误。
template <int N> classA;
应该是:
template <int N> class classA;
// Missing ^^^^
和
template<typename T> classX { ...
应该是
template<typename T> class classX { ...
// Missing ^^^^
请参阅注释中的 link posted by @TonyD 以了解工作示例程序。
我找不到似乎可以回答这个问题的另一个问题。
我有一个模板定义如下:
template <int N> class classA;
//class A 的正文与这个问题真的无关。
现在我有了第二个 class 模板:
template<typename T> class classX
{
public:
static const unsigned number;
}
默认实现:
template<typename T> classX<T>::number = sizeof(T);
但是,如果与 classA 一起使用,我想为 classX 设置一个 "specialization"。 但是对于 all/any 模板参数 N。 我该怎么做?
感谢您的回复:)
已编辑:更正语法错误:)
您将使用:
template <int N> class classX<classA<N>>
{
// Add the details of the specialization
};
顺便说一句,您发布的代码有语法错误。
template <int N> classA;
应该是:
template <int N> class classA;
// Missing ^^^^
和
template<typename T> classX { ...
应该是
template<typename T> class classX { ...
// Missing ^^^^
请参阅注释中的 link posted by @TonyD 以了解工作示例程序。