c++ - 非专门模板类中的专门功能

标签 c++ templates

请引用以下代码
Specialized function in non specialized Template class
是否可以为非专用模板类 MyClass [Line Number 7] 编写专用函数 foo ?如果是,那么,相同的语法是什么。
此致,
阿图尔

最佳答案

如果您创建类模板的完全特化,就可以做到这一点。引用这个问题的答案:If I want to specialise just one method in a template, how do I do it?

否则,如果您希望具有相同签名的给定函数具有两种不同的行为,具体取决于类的实例化版本,并且该实例化是模板类的部分特化,您将必须对模板类进行单独的专门化。

请记住,如果您想在第二种情况下避免冗余代码,您始终可以创建一个具有不会更改的功能的基模板类,然后创建包含必要的唯一功能的派生模板类对于每个部分特化。

关于c++ - 非专门模板类中的专门功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9388762/

相关文章:

c++ - 如何使用负值或零值格式化复数输出

c++ - 从具有移动语义或返回值优化但不是复制构造函数的函数返回值

c++ - `class template Example<int>;` 语句对 C++11 意味着什么?

c++ - 如何将 "int X::*"的内部 typedef 作为模板函数参数传递?

c++ - OpenGL 单 channel 到多 channel 的可行性

c++ - 将 Eigen C++ 库与英特尔 MKL 结合使用

c++ - 等式运算符重载 : Is (x! =y) == (!(x==y))?

c++ - “Overload” 基于C++98中函数对象operator()签名的函数模板

c++ - 模板类和在 C++ 中使用带有混合参数的重载构造函数

JavaScript 正则表达式模板 : only match when string inside brackets is equal