185得票2回答
C++11中,安全的bool惯用法已经过时了吗?

@R. Martinho Fernandes的回答表明,安全bool习惯用法在C++11中已经被弃用,因为它可以被一个简单的 explicit operator bool() const; 根据答案中的标准引用§4 [conv] p3: 如果存在一个发明的临时变量t(§8.5),使得声...

42得票4回答
C++安全bool包装器

我正在尝试设计一个应用 安全bool习惯用法 的bool包装器结构体。 经典的解决方案非常简单:框架可能是这样的: struct Bool final { Bool() = default; Bool(bool value) : _value{value} {} ...

36得票8回答
typedef是必需的情况有哪些?

考虑来自安全布尔值习惯用法的以下摘录:typedef void (Testable::*bool_type)() const; operator bool_type() const; 能否在不使用typedef的情况下声明转换函数?以下代码无法编译:operator (void (Testab...

16得票2回答
Boost库中是否有安全的bool idiom(布尔惯用法)辅助工具?

25%的程序员工作时间用于检查所需的代码是否已经存在。 我正在寻找一个基类来实现安全布尔习惯用语。

13得票2回答
在boost中的安全布尔惯用法?

Boost库是否提供了安全布尔习惯用法的实现,以便我可以从中派生我的类? 如果是 - 它在哪里? 如果不是 - 除了自己实现之外,我的选择是什么? 我发现了以下类似的问题:“在Boost中是否有安全的bool idiom helper?”,并且被接受的答案建议在Boost.Opera...

11得票3回答
常量正确性和安全布尔习惯用法

我有一个与安全布尔值惯用法相关的问题: typedef void (Testable::*bool_type)() const; // const necessary? void this_type_does_not_support_comparisons() con...

7得票2回答
安全布尔模式和显式 operator bool 之间的不兼容性问题

我正在考虑在已经使用C++11特性的代码中,将所有安全bool惯用法的实例替换为explicit operator bool,这样旧编译器不认可显式转换运算符的事实将不会有影响,因此我想知道这样做是否会引起一些微妙的问题。 因此,从旧的和单调无味的安全布尔惯用法切换到新的和闪亮的explic...