컴파일러 경고(수준 1) C4836
비표준 확장 사용 : 'type' : 지역 형식 또는 명명되지 않은 형식을 템플릿 인수로 사용할 수 없습니다.
C++ 표준에서는 지역 형식을 템플릿 인수로 사용할 수 없도록 규정하고 있지만 Visual C++ 컴파일러에서 /Ze를 사용하면 지역 형식을 템플릿 인수로 사용할 수 있습니다. C4836은 규칙을 따르지 않는 코드를 작성하고 있음을 알리기 위한 경고입니다. 자세한 내용은 /Za, /Ze(언어 확장 사용 안 함)를 참조하십시오.
C4836은 기본적으로 표시되지 않습니다. 자세한 내용은 Compiler Warnings That Are Off by Default를 참조하십시오.
예제
다음 샘플에서는 C4836 경고가 발생하는 경우를 보여 줍니다.
// C4836.cpp
// compile with: /W1
#pragma warning(default:4836)
template <class T>
struct TA {};
struct R {
public:
void f() {
struct S {};
TA<S> ta; // C4836
}
};
int main() {
R r;
r.f();
}