Ошибка компилятора C2299
"function": изменение поведения: явная специализация не может быть конструктором копирования или оператором назначения копирования
Замечания
Эта ошибка также может быть создана в результате работы соответствия компилятора, которая была выполнена для Visual Studio 2005. Предыдущие версии Visual C++ позволили явным специализациям конструктора копирования или оператора назначения копирования.
Чтобы разрешить C2299, не создавайте конструктор копирования или оператор назначения шаблоном функции. Сделайте их не шаблонными функциями, которые принимают тип класса. Любой код, вызывающий конструктор копирования или оператор назначения, явно указывая аргументы шаблона, необходимо удалить аргументы шаблона.
Пример
Следующий пример приводит к возникновению ошибки C2299:
// C2299.cpp
// compile with: /c
class C {
template <class T>
C (T t);
template <> C (const C&); // C2299
C (const C&); // OK
};