boost中有安全的布尔习语助手吗?

发布于 2024-11-27 00:36:21 字数 68 浏览 4 评论 0 原文

25% 的程序员工作时间花在检查所需的代码是否已经存在上。

我正在寻找一个用于实现安全布尔习惯用法的基类。

25% of programmers work time is spended by checking if the required code already exist.

I'm searching for a base class for implementing the safe bool idiom.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

愁以何悠 2024-12-04 00:36:21

bool_testable >Boost.Operators 看起来很有前途。

参考文献提到:

bool_testable 提供了对立面
operator bool,使得表达式 if (!p) 有效,同时也
通过防止意外转换来使 operator bool 更安全
整数类型。 ... bool_testable<> 防止这些意外
通过将私有转换运算符声明为signed char来进行转换,
并且不定义主体。

bool_testable<> in Boost.Operators looks promising.

The reference mentions that:

bool_testable provides the antithesis of
operator bool, such that the expression if (!p) is valid, whilst also
making operator bool safer by preventing accidental conversions to
integer types. ... bool_testable<> prevents these accidental
conversions by declaring a private conversion operator to signed char,
and not defining the body.

后知后觉 2024-12-04 00:36:21

最安全的做法是隐式转换为bool

明确该转换。

那么,如果名字选得好,也可以帮助人们理解它的全部含义。

干杯&呵呵,

The safest thing to do is to not have implicit conversion to bool.

Make that conversion explicit.

Then the name, if chosen well, can also help people understand what it's all about.

Cheers & hth.,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文