Почему разрешено компилироваться в C++?
#include<iostream>
using namespace std;
class mytest
{
public:
operator int()
{
return 10;
}
operator const int()
{
return 5;
}
};
int main()
{
mytest mt;
//int x = mt; //ERROR ambigious
//const int x = mt; //ERROR ambigious
}
Почему имеет смысл разрешить компиляцию различных версий (на основе константы) оператора преобразования, когда их использование всегда приводит к двусмысленности?
Может кто-то уточнить, чего я здесь не хватает?