你能解释一下这里的typedef是做什么的,目的是什么?
class C
{
public:
...
typedef bool (C::*implementation_defined_bool_type)(bool) const;
operator implementation_defined_bool_type() const {
return _spi ? &C::isPersistent : 0;
}
};
答案 0 :(得分:5)
你能解释一下
typedef
在这里做了什么吗?
typedef bool (C::*implementation_defined_bool_type)(bool) const;
typedef
sa 指向C
类型的const成员函数的指针,它将bool
作为输入参数并返回{{1} }。
虽然,
bool
接收operator implementation_defined_bool_type() const
类型的对象并返回类型C
它被称为转换运算符。
它的目的是什么?
它实现了“Safe Bool Idiom”,旨在验证布尔上下文中的对象。
请注意Safe Bool Idiom is obsolete与C ++ 11标准。