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


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

查看所有标签

猜你喜欢:

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

Real-Time Collision Detection

Real-Time Collision Detection

Christer Ericson / CRC Press / 2004-12-22 / USD 98.95

Written by an expert in the game industry, Christer Ericson's new book is a comprehensive guide to the components of efficient real-time collision detection systems. The book provides the tools and kn......一起来看看 《Real-Time Collision Detection》 这本书的介绍吧!

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

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具