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

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

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

The Probabilistic Method Second Edition

Noga Alon、Joel H. Spencer / Wiley-Blackwell / 2000 / $121.95

The leading reference on probabilistic methods in combinatorics-now expanded and updated When it was first published in 1991, The Probabilistic Method became instantly the standard reference on one......一起来看看 《The Probabilistic Method Second Edition》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

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

HEX HSV 互换工具