在 C 11 中,通过引入显式运算符 bool,safe-bool 惯用法的必要性已经过时() 常量。根据 C 标准第 4 节 [conv] p3:
表达式 e 可以隐式转换为类型 T 当且仅当声明 T t=e;格式良好 [...]
这意味着如果声明 bool t(e); 则表达式可以根据上下文转换为 bool
某些语言结构需要此类隐式转换,包括:
因此,有了显式转换运算符的可用性,就没有必要诉诸复杂的 safe-bool 实现。这显着简化和澄清了代码,因为与 safe-bool 习惯用法的隐式机制相比,显式转换提供了清晰且有意的类型转换。
以上是Safe-Bool 惯用法在 C 11 中仍然有必要吗?的详细内容。更多信息请关注PHP中文网其他相关文章!