Кажется, что следующий класс компилирует , но операторы преобразования никогда не вызываются:
class A
{
public:
operator A() const { std::cout << "A() called" << std::endl; return *this; }
operator A&() { std::cout << "A&() called" << std::endl; return *this; }
operator const A&() const { std::cout << "const A&() called" << std::endl; return *this; }
};
Функция, определяющая преобразование ссылки на себя, просто игнорируется?