能否将参数包展开至不同的成员函数中?
聊聊模板特化的预期展开与合理性问题
大伙好,最近在折腾模板特化的时候碰到了个纠结的点:
- 我尝试按照如下方式进行特化:
// 基础通用模板 template<typename T> class MyHandler { void handle(T data) { // 通用处理逻辑 } }; // 针对string类型的特化 template<> class MyHandler<std::string> { // 我期望这里能直接展开为预设的专属处理逻辑 }; - 原本预想这个特化能直接展开成我想要的实现,但仔细琢磨下来,这事儿从某些角度看其实并不合理——比如这种特化可能打破了模板的通用设计初衷,或者会给后续代码的复用性、可维护性埋下隐患。
不过我还是非常期待各位大佬分享自己的见解,不管是从语法规范、工程实践还是软件设计原则的角度,都欢迎一起唠唠!
内容的提问来源于stack exchange,提问作者Dimitar Mirchev
相关产品推荐
相关产品推荐

