Condividi tramite


Avviso del compilatore (livello 1) C4836

utilizzata estensione non standard: 'tipo': impossibile utilizzare tipi locali o tipi non denominati come argomenti di template

L'utilizzo di tipi locali come argomenti di modello non è conforme agli standard C++, ma viene comunque consentito dal compilatore Visual C++ in /Ze. L'avviso C4836 è un messaggio informativo e viene visualizzato per indicare che si sta scrivendo codice non conforme agli standard. Per ulteriori informazioni, vedere /Za, /Ze (Disabilita estensioni linguaggio).

L'avviso C4836 è disattivato per impostazione predefinita. Per ulteriori informazioni, vedere Compiler Warnings That Are Off by Default.

Esempio

Nell'esempio seguente viene generato l'errore 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();
}