C++核心准则T.144:不要特化函数模板

网友投稿 579 2022-11-13

C++核心准则T.144:不要特化函数模板

C++核心准则T.144:不要特化函数模板

T.144: Don't specialize function templates

T.144:不要特化函数模板

Reason(原因)

You can't partially specialize a function template per language rules. You can fully specialize a function template but you almost certainly want to overload instead -- because function template specializations don't participate in overloading, they don't act as you probably wanted. Rarely, you should actually specialize by delegating to a class template that you can specialize properly.

你无法为每条语言规则部分特化函数模板。你可以完全特化函数模板,但是几乎一定想要重载函数--因为函数模板特化不算重载,它们不会像你可能期待的那样动作。极特殊情况下,你应该通过委托给一个你可以正确特化的模板类来实现特化。

Example(示例)

-

Exceptions: If you do have a valid reason to specialize a function template, just write a single function template that delegates to a class template, then specialize the class template (including the ability to write partial specializations).

例外:如果你确实有合理的理由特化函数模板,只要写一个单独的函数模板,以便向一个模板类进行委托,然后定义一个模板类(包含实现部分特化的能力)

Enforcement(实施建议)

Flag all specializations of a function template. Overload instead.标记所有函数模板的特化。用重载代替。

原文链接

​​的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。

觉得本文有帮助?请分享给更多人。

面向对象开发,面向对象思考!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C++核心准则CP.43:尽量减少花费在临界区中的时间
下一篇:Logback与Log4j2日志框架性能对比与调优方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~