小编陈昱安*_*陈昱安的帖子

UnspecifiedBoolType的类型?关于typedef,成员函数指针和转换运算符

我想了解下面的代码.实际的类型是UnspecifiedBoolType什么?

我糊涂了.有谁可以向我解释一下?提前致谢!

template <typename T>
class MyOptional
{
public:    
    MyOptional() : valueIsSet(false) {}
    MyOptional(const T& value) : valueIsSet(true), value(value) {}

    // Conversion to bool. This is a variant of the "safe bool idiom".
    typedef T MyOptional<T>::*UnspecifiedBoolType;
    inline operator UnspecifiedBoolType() const;

    ...

private:
    bool valueIsSet;
    T value;
};

...

template<typename T>
MyOptional<T>::operator MyOptional<T>::UnspecifiedBoolType() const
{
    return valueIsSet ? &MyOptional<T>::value : 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ typedef

2
推荐指数
1
解决办法
817
查看次数

标签 统计

c++ ×1

typedef ×1