LINUX.ORG.RU

История изменений

Исправление Begemoth, (текущая версия) :

Извиняюсь, похоже я не учёл одну деталь: при copy initialization (это в частности передача аргументов и возврат значений) необязательно вызывается конструктор копирования, а выполняется полноценное разрешение перегрузки и тут шаблонный конструктор может иметь сигнатуру которая лучше подходит списку аргументов.

Исправление Begemoth, :

Извиняюсь, похоже я не учёл одну деталь: при copy initialization (это в частности передача аргументов и возврат значений) необязательно вызывается конструктор копирования, а выполняется полноценное разрешение перегрузки и тут шаблонный конструктор может иметь сигнатуру которая лучше подходит списку аргументов.

И получается такой интересный эффект, если сделать A(const A&) = delete; то std::is_copy_constructible<A>::value == false. Но copy initialization будет работать для неконстантных ссылок на A.

Исходная версия Begemoth, :

Извиняюсь, похоже я не учёл одну деталь: при copy initialization (это в частности передача аргументов и возврат значений) необязательно вызывается конструктор копирования, а выполняется полноценное разрешение перегрузки и тут шаблонный конструктор может иметь сигнатуру которая лучше подходит списку аргументов.