Ниже приведен тестовый код:
struct A
{
operator int ();
operator int () const;
};
void foo (const int);
Теперь, после вызова:
foo(A()); // calls A::operator int()
Почему он всегда выбирает неконстантные версия ? Даже создание оператора const int () const;
никак не влияет на вызов foo ()
. Помимо стандартной ссылки, может ли кто-нибудь логически объяснить причину этого?