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

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

内容简介:代码日志版权声明:翻译自: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


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

查看所有标签

猜你喜欢:

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

The Facebook Effect

The Facebook Effect

David Kirkpatrick / Simon & Schuster / 2010-6-8 / USD 26.00

《Facebook 效应》的作者近距离地采访了与Facebook相关的人士,其中包括Facebook的创始人、员工、投资人、意向投资人以及合作伙伴,加起来超过了130人。这是真切详实的访谈,更是超级精彩的故事。作者以其细腻的笔触,精巧的叙事结构,解密了Facebook如何从哈佛的宿舍里萌发,创始人的内讧,权力之争,如何放弃华盛顿邮报的投资,怎样争取到第一个广告客户,而第一轮融资又如何获得一亿美元的......一起来看看 《The Facebook Effect》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具