首页  >  文章  >  后端开发  >  Safe-Bool 惯用法在 C 11 中仍然有必要吗?

Safe-Bool 惯用法在 C 11 中仍然有必要吗?

Linda Hamilton
Linda Hamilton原创
2024-11-23 00:26:11610浏览

Is the Safe-Bool Idiom Still Necessary in C  11?

C 11 中过时的 Safe-Bool 惯用法

在 C 11 中,通过引入显式运算符 bool,safe-bool 惯用法的必要性已经过时() 常量。根据 C 标准第 4 节 [conv] p3:

表达式 e 可以隐式转换为类型 T 当且仅当声明 T t=e;格式良好 [...]

这意味着如果声明 bool t(e); 则表达式可以根据上下文转换为 bool

某些语言结构需要此类隐式转换,包括:

  • if、while、for
  • 二元逻辑运算符 & 和 ||
  • 逻辑否定运算符!
  • 条件运算符?:
  • static_assert
  • noexcept

因此,有了显式转换运算符的可用性,就没有必要诉诸复杂的 safe-bool 实现。这显着简化和澄清了代码,因为与 safe-bool 习惯用法的隐式机制相比,显式转换提供了清晰且有意的类型转换。

以上是Safe-Bool 惯用法在 C 11 中仍然有必要吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn