Ошибка при компиляции apache APR сделать файл не найден

Поскольку эта конструкция совершенно легальная

A a4((C()));

проблема в том, что вы используете инициализацию копирования. Действительно, ваш пример равен

A a4((A(C()));

8.5 / 16 Семантика инициализаторов следующая. Тип назначения - тип инициализированного объекта или ссылки, а тип источника - тип выражения инициализатора. Если инициализатор не является одним (возможно, в скобках) выражением, тип источника не определен. Если тип назначения является классом класса (возможно, cv-qualit): - В противном случае (то есть для остальных случаев инициализации копии) пользовательские последовательности преобразований, которые могут преобразовываться из типа источника в тип назначения или (когда конверсия функция используется) к их производному классу перечислены, как описано в 13.3.1.4, и лучший выбирается с помощью разрешения перегрузки (13.3).

13.3.1.4/1

Семантика инициализаторов следующие. Тип назначения - тип инициализированного объекта или ссылки, а тип источника - тип выражения инициализатора. Если инициализатор не является одним (возможно, в скобках) выражением, тип источника не определен.

Разрешение перегрузки используется для выбора пользовательского преобразования, которое нужно вызвать. Предполагая, что «cv1 T» является типом инициализированного объекта, с типом типа T, кандидатные функции выбираются следующим образом: - Конструкторы преобразования (12.3.1) of T являются кандидатными функциями.

Если тип назначения является классом класса (возможно, cv-qualit):

В условиях, указанных в 8.5, как часть инициализации копии объекта типа класса, пользовательское преобразование может быть вызвано для преобразования выражения инициализатора в тип инициализированного объекта.

- Когда тип выражения инициализатора является типом класса «cv S», неявный функции преобразования S и его базовые классы.

13
задан Vadim Kotov 8 February 2018 в 12:54
поделиться