다음을 통해 공유


컴파일러 경고(수준 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();
}