Re[3]: Конструктор копирования из шаблонного типа
От: Юрий Жмеренецкий ICQ 380412032
Дата: 17.08.09 09:21
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, jazzer, Вы писали:


J>Кстати, к вопросу о сабже — этот конструктор не является конструктором копирования, если для этого класса компилятор способен сгенерить такой конструктор (а судя по описанию, он способен это сделать).

J>т.е. когда компилятор сгенерит копиктор, в классе получится вот что:
J>
J>template <class U> FTypeName(const U& val); // шаблонный
J>FTypeName(const FTypeName& val); // сгенерен компилятором, не шаблонный!
J>

J>Тогда при копировании получится U = FTypeName, т.е. полное совпадение сигнатуры, при которой выигрывает нешаблонная функция.
Это справедливо для функций, в случае с конструкторами поведение другое:

12.8/3
A member function template is never instantiated to perform the copy of a class object to an object of its class type.

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.