c++ 使用强大的typedef作为Boost参数库的更轻便的替代品?

栏目: C++ · 发布时间: 5年前

内容简介:代码日志版权声明:翻译自:http://stackoverflow.com/questions/9211210/using-strong-typedef-as-a-more-lightweight-alternative-to-boost-parameter-librar

我经常使用Boost强typedef实用程序来提高我的程序的安全性.例如通过编写如下代码:

BOOST_STRONG_TYPEDEF(int, X)
BOOST_STRONG_TYPEDEF(int, Y)
BOOST_STRONG_TYPEDEF(int, Width)
BOOST_STRONG_TYPEDEF(int, Height)

struct Rect {
    Rect(X x, Y y, Width w, Height h);
};

// Usage:
Rect rect(X(10), Y(20), Width(800), Height(600));

强大的typedef这里提高了代码的可读性和安全性. (如果以错误的顺序提供参数,编译器将报告一个错误,如果参数都是int,则不会出现这种情况)

我的问题是:

>为此可以使用BOOST_STRONG_TYPEDEF吗? (文档是 very brief .)

>有更重要的原因是改用boost参数库吗?

从技术上讲:

>它的工作原理

它增加了安全性

实际上

我不建议创建新的类型,只是为了单个函数的参数(除非它是一个特定于此函数的枚举),类型应该渗透到应用程序中,以避免使用一次又一次的转换.

如果在整个应用程序中使用X,Y,Width和Height类型,那么不仅不会有演员,而且您的应用程序将会更安全,更好地记录在案(是的…我是一个类型怪胎).

现在,关于Boost.Parameters,这是完全不同的.

Boost.Parameters可以(可能)在您已经有类型的时候被添加.老实说,我从来没有看到需要.当您的功能变得如此笨重,Boost.Parameters需要调用它们时,您应该修复功能,而不是添加到杂乱.

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/9211210/using-strong-typedef-as-a-more-lightweight-alternative-to-boost-parameter-librar


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

分布式算法导论

分布式算法导论

泰尔 / 霍红卫 / 机械工业出版社 / 2004年09月 / 39.0

分布式算法20多年来一直是倍受关注的主流方向。本书第二版不仅给出了算法的最新进展,还深入探讨了与之相关的理论知识。这本教材适合本科高年级和研究生使用,同时,本书所覆盖的广度和深度也十分适合从事实际工作的工程师和研究人员参考。书中重点讨论了点对点消息传递模型上的算法,也包括计算机通信网络的实现算法。其他重点讨论的内容包括分布式应用的控制算法(如波算法、广播算法、选举算法、终止检测算法、匿名网络的随机......一起来看看 《分布式算法导论》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具