我想了解下面的代码.实际的类型是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)