【发布时间】:2014-03-16 17:10:35
【问题描述】:
假设我用模板方法声明了一个类。
class MyClass {
...
template<typename T> void myMethod(const T& obj);
}
我已经定义了该方法的通用版本
template<typename T>
void MyClass::myMethod(const T& obj) { .... }
并且想要为各种类型定义几个特化。什么是正确的语法? VS2013 编译器似乎不赞成我的尝试。
template<>
void MyClass::myMethod<int>(const int &) {....}
or
template<int>
void MyClass::myMethod(const int &) { .... }
【问题讨论】:
-
您的语法似乎正确 (live demo),但您忘记了类定义末尾的分号。
-
没错。我认为我的问题来自于尝试提供在某些情况下而不是“const T&”使用“const T* &”参数的专业化。
标签: c++ templates syntax template-specialization