struct foo { operator int&() { return i; } operator const int& () const { return i; } private: int i; }; int main() { foo f; switch (f) { } }
Standard input is empty
prog.cpp: In function ‘int main()’:
prog.cpp:20:11: error: ambiguous default type conversion from ‘foo’
switch (f)
^
prog.cpp:20:11: error: candidate conversions include ‘foo::operator int&()’ and ‘foo::operator const int&() const’
Standard output is empty