Questions tagged «safe-bool-idiom»

2
安全布尔习语在C ++ 11中过时了吗?
@R的答案。Martinho Fernandes表明,C ++ 11中不赞成使用安全布尔习语,因为可以用一个简单的方法代替它 explicit operator bool() const; 根据答案中的标准报价§4 [conv] p3: T当且仅当声明T t=e;的格式正确(对于某些发明的临时变量t(第8.5节))时,表达式e才能隐式转换为类型。某些语言构造要求将表达式转换为布尔值。表达式e出现在这样的背景下被说成是上下文转换到bool和良好成形的当且仅当该声明bool t(e);是良好的形成,对于某些发明临时变量t(第8.5节)。 高亮部分清楚地将“隐式显式强制转换”(在标准中称为“上下文转换”)显示为@R。马丁尼奥说。 要求“隐式显式强制转换”的“某些语言构造”如下所示: if,while,for(§6.4 [stmt.select] p4) 二进制逻辑运算符&&和||(§5.14 [expr.log.and/or] p1两者) 逻辑否定运算符!(§5.3.1 [expr.unary.op] p9) 条件运算符?:(§5.14 [expr.cond] p1) static_assert(§7 [dcl.dcl] p4) noexcept(§15.4 [except.spec] p2) 我们标题中的假设正确吗?我希望我们不要忽视任何潜在的缺点。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.