[英]Partial specialization for class method
我正在嘗試專門化(非模板化!)類的方法。 顯然,這是不可能的,但是我正在努力找出原因或如何克服這個問題。
class MyClass {
public:
template <typename... T>
auto MyMethod(T... t) -> void { std::cout << "Original" << std::endl; }
template <typename... T>
auto MyMethod<int, T...>(int value, T... t) -> void { std::cout << "Specialization" << value << std::endl; }
};
int main(void) {
MyClass myClass;
myClass.MyMethod<char, char>('c', 'c');
myClass.MyMethod<int, char>(123, 'c');
return 0;
}
只有類可以部分<\/em>特化; 方法只能完全<\/em>專業化。 由於您的方法仍然具有未指定的模板參數 (
T<\/code> ),這意味着部分方法特化。
如果您將這些模板參數用於一個類(並調用該類的非模板化成員函數),那么這應該是可能的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.