I get the Compiler Error C2071 when I try to implement the explicit operator bool
:
class C
{
public:
explicit operator bool() const
{
return !!*this;
}
};
Why? How can I solve this problem?
I'm using Visual Studio 2012 RC.
Explicit conversion operators are those that do require an explicit cast. As an example, the following code shows a simple console application to covert a weight in Pounds to Kilograms.
bool operator<( const TriIndex& rhs ) is the "less than" operating ( < ), bool is the return type of the "less than" operator.
Visual Studio 2012 does not support explicit conversion operators, see C++11 Features in Visual C++ 11.
These articles talk about the safe bool idiom:
If you look at a list of features in Visual Studio 2010 you can see that it was not an available feature. A look at What's New for Visual C++ in Visual Studio 2012 shows that is has not been added.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With