StringBuffer
синхронизируется, StringBuilder
не.
Да, ожидаемый результат - это неопределенность, насколько я понимаю, из раздела 13.3.3.2
Сопоставление аргумента 'v' типа 'B' с параметрами любого из перегруженных конструкторов 'A' требует определенного пользователем преобразования. Там обе последовательности имеют рейтинг конверсии.
Моя интерпретация заключается в том, что применяется следующая цитата из $ 13.3.3.2
[...] Заданная пользователем последовательность преобразования U1 является лучшей последовательностью преобразования, чем другая пользовательская последовательность преобразования U2 , если они содержат одинаковую пользовательскую функцию преобразования или конструктор и , если вторая стандартная последовательность преобразования U1 лучше, чем вторая стандартная последовательность преобразования U2.
Оба они вызывают различные функции преобразования в классе «B». Поэтому я думаю, что первое условие само по себе не выполняется, и, следовательно, ожидаемый результат - неоднозначность, поскольку ни одна из последовательностей преобразования не лучше, чем другая.