Udostępnij za pośrednictwem


C4836 (poziom 1) ostrzeżenia kompilatora

niestandardowa rozszerzenia używane: 'typu': typów lokalnych lub nienazwane nie mogą być używane jako argumenty szablonu

C++ standard nie zezwala na użycie lokalnych typów jako argumenty szablon, ale kompilator Visual C++ umożliwia pod /Ze.C4836 jest ostrzeżenie informacyjny, aby użytkownik wiedział, że są pisania kodu nie są zgodne.Aby uzyskać więcej informacji, zobacz / Za, /Ze (język wyłączyć rozszerzenia).

C4836 jest domyślnie wyłączona.Zobacz Ostrzeżenia kompilatora, które są domyślnie wyłączone Aby uzyskać więcej informacji.

Przykład

Poniższy przykład generuje 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();
}