Оператор присваивания для шаблонного класса - PullRequest
1 голос
/ 23 октября 2011

Для пояснения, я цитирую ответ Джеймса Макнеллиса в посте «Тайна перегрузки оператора назначения шаблонов» :

Неявно объявленный оператор присваивания копии, который объявлен следующим образом, все еще генерируется:

Wrapper& operator=(const Wrapper&);

Теперь у меня есть похожий класс, и я хотел бы знать, как должно выглядеть определение этого оператора.

Вот класс для отзыва:

template<typename T>
struct Wrapper;

Какой сейчас корректирующий матч:

template<typename T>
Wrapper& Wrapper<T>::operator=(const Wrapper&)

или

Wrapper& Wrapper::operator=(const Wrapper&)

Или это точно так же?

1 Ответ

2 голосов
/ 23 октября 2011

Это

template<typename T>
Wrapper& Wrapper<T>::operator=(const Wrapper&)

что является просто сокращением для

template<typename T>
Wrapper<T>& Wrapper<T>::operator=(const Wrapper<T>&)

Другая версия будет применяться к не шаблонному классу с именем Wrapper, это не повлияет на ваши шаблоны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...