컴파일러 오류 C2975
'argument': 'type'에 대한 템플릿 인수가 잘못되었습니다. 컴파일 시간 상수 식이 필요합니다.
템플릿 인수가 템플릿 선언과 일치하지 않습니다. 상수 식은 꺾쇠 괄호 안에 나타납니다. 변수는 템플릿 실제 인수로 사용할 수 없습니다. 템플릿 정의를 확인하여 올바른 형식을 찾습니다.
예시
다음 샘플에서는 C2975를 생성하고 올바른 사용법도 보여 줍니다.
// C2975.cpp
template<int I>
class X {};
int main() {
int i = 4, j = 2;
X<i + j> x1; // C2975
X<6> x2; // OK
}
C2975는 .와 함께 /ZI
컴파일 시간 상수로 사용할 __LINE__
때도 발생합니다. 한 가지 해결 방법은 /Zi
/ZI
.
// C2975b.cpp
// compile with: /ZI
// processor: x86
template<long line>
void test(void) {}
int main() {
test<__LINE__>(); // C2975
}