다음을 통해 공유


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