컴파일러 오류 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
};