Чтение действительно длинных функций может быть очень забавным!Что делает оператор <- делать в C++?
int crazylongfun()
{
int x = -1;
foo b = -42;
//... 1000 lines below
if(b<-x)
{
std::printf("How did I get here there is no left arrow operator?\n");
}
return 0;
}
Глядя на определение Foo
struct foo
{
int x;
foo(int a) : x(a) {}
operator int() const
{
return x;
}
};
Это компилируется нормально и производит желаемый результат. Каков механизм, который позволяет это?
смотрите также «головастика оператора ": http://blogs.msdn.com/b/oldnewthing/archive/2015/05/25/10616865.aspx –