Compartir a través de


Advertencia del compilador (nivel 1) C4836

extensión no estándar utilizada : 'tipo' : los tipos locales o sin nombre no se pueden utilizar como argumentos de plantilla

El estándar de C++ no permite el uso de tipos locales como argumentos de plantilla, pero el compilador de Visual C++ sí que lo permite con la opción /Ze.La advertencia C4836 es una advertencia informativa, para hacerle saber que está escribiendo código no conforme.Para obtener más información, vea /Za, /Ze (Deshabilitar extensiones de lenguaje).

La advertencia C4836 está desactivada de manera predeterminada.Para obtener más información, consulte Advertencias del compilador Desactivadas De forma predeterminada.

Ejemplo

El ejemplo siguiente genera el error 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();
}