Compartilhar via


C4836 de aviso (nível 1) do compilador

extensão padrão utilizada: 'type': tipos de locais ou de tipos sem nome não podem ser usados como argumentos de modelo

O padrão C++ não permite o uso de tipos de locais como argumentos de modelo, mas o compilador do Visual C++ que isso estiver sob /Ze.C4836 é um aviso informativo, para que você saiba o que você está escrevendo código não-conformes.Para obter mais informações, consulte / Za, /Ze (extensões de linguagem Disable).

C4836 está desativado por padrão.Consulte Avisos do compilador são desativados por padrão para obter mais informações.

Exemplo

O exemplo a seguir gera 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();
}