Так, чтобы изучить больше о процессе разрешения перегрузки Я читал эту статью: http://accu.org/index.php/journals/268Почему этот вызов неоднозначен?
Особенность «Заказ определяемых пользователем преобразования последовательностей» раздела имеет следующий пример:
struct A;
struct B {
B(A const&);
};
struct A {
operator B() const;
operator int() const;
};
void func(B);
void func(int);
func(A());
Первоначально я думал, что вызов является неоднозначным, поскольку из следующих операторов преобразования в структуры A
operator B() const; //-> A::operator B(const A&)
operator int() const; //-> A::operator int(const A&)
Тогда они объяснили так:
Звонок неоднозначен, однако параметр B имеет неоднозначную последовательность преобразования , и если функция, имеющая этот параметр, была , то вызов был бы неоднозначным. Это связано с тем, что будет выбирать только одну функцию.
Который полностью пошел верхней части моей головы, так что я должен встать и прочитать ее еще раз, но до сих пор она ускользала от меня усмехается
Я действительно был бы признателен, если можно было бы объяснить порядок события и что выше цитата из статьи, означающей простой термин, пожалуйста :) Большое спасибо :)
Цитата подтверждает ваше отражение, я не знаю, где проблема. – LogicStuff