内容简介:代码日志版权声明:翻译自: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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- JSX的替代品[译]
- [译]JSX的替代品
- sharedata 的替代品:datasheet
- Kubectl 的替代品:kubeman
- Postman 的替代品来了
- 初识wolfSSL,OpenSSL的一个替代品
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。