Цитата из N3337 12.3.1 / 3
Неявный конструктор копирования / перемещения (12.8) является преобразованием
конструктор. Неявно объявленный конструктор копирования / перемещения не является
явный конструктор; это может быть вызвано для неявных преобразований типов.
Цитата из ANSI ISO IEC 14882 2003
Неявный конструктор копирования (12.8) является конструктором преобразования.
неявно объявленный конструктор копирования не является явным конструктором;
это может быть вызвано для неявных преобразований типов.
Понятия не имею, как copy-constructor
может быть использован для implicit
тип conversions
, И если в стандарте это опечатка / ошибка, то почему она не исправлена со стандарта C ++ 03? Любые ссылки и примеры (если мы можем использовать его для type conversions
) действительно ценятся.
Конструктор копирования может конвертировать из объекта производного типа, разрезая его:
struct A {};
struct B : A {};
B b;
A a = b; // uses A::A(A const&) to convert B to A
При наложении имплика встроенная функция-член определяется в определении класса. Ключевое слово inline не используется.