Should this be ambiguous or not? (implicit casts)

StringBuffer синхронизируется, StringBuilder не.

23
задан Alex Brown 24 November 2010 в 12:40
поделиться

1 ответ

Да, ожидаемый результат - это неопределенность, насколько я понимаю, из раздела 13.3.3.2

Сопоставление аргумента 'v' типа 'B' с параметрами любого из перегруженных конструкторов 'A' требует определенного пользователем преобразования. Там обе последовательности имеют рейтинг конверсии.

Моя интерпретация заключается в том, что применяется следующая цитата из $ 13.3.3.2

[...] Заданная пользователем последовательность преобразования U1 является лучшей последовательностью преобразования, чем другая пользовательская последовательность преобразования U2 , если они содержат одинаковую пользовательскую функцию преобразования или конструктор и , если вторая стандартная последовательность преобразования U1 лучше, чем вторая стандартная последовательность преобразования U2.

Оба они вызывают различные функции преобразования в классе «B». Поэтому я думаю, что первое условие само по себе не выполняется, и, следовательно, ожидаемый результат - неоднозначность, поскольку ни одна из последовательностей преобразования не лучше, чем другая.

4
ответ дан 29 November 2019 в 03:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: