Safe-Bool 惯用法是 C 11 的遗物吗?
曾经在 C 中广泛使用的 safe-bool 惯用法现在面临着根据 C 11 引入的显式布尔转换运算符进行审查。根据 C 11 标准 (§4 [conv] p3),如果相应的变量声明格式良好,则表达式可以隐式转换为类型。这个概念称为“上下文转换”,允许直接将值分配给布尔变量。
安全布尔替换
C 11 之前,safe-bool 习惯用法用于提供对布尔转换的显式控制。它涉及定义一个具有显式名称的成员函数,例如返回布尔值的 is_valid() 或 is_active() 。然而,随着 C 11 引入显式运算符 bool() const;,开发人员现在可以为其类定义显式布尔转换运算符。
操作中的上下文转换
涉及以下语言结构的表达式需要上下文转换为布尔值:
答案
safe-bool 习惯用法在 C 11 中确实被认为是过时的。显式布尔转换运算符的引入提供了更清晰、更控制布尔转换的逻辑方法。通过允许直接赋值给布尔变量,上下文转换消除了对 safe-bool 习惯用法的需要,并简化了代码的可读性。
以上是Safe-Bool 习语在 C 11 及更高版本中是否已过时?的详细内容。更多信息请关注PHP中文网其他相关文章!