Compartilhar via


Erro do compilador C2140

'type' : um tipo que é dependente de um parâmetro de tipo genérico não é permitido como um argumento para a característica de tipo intrínseca do compilador 'trait'

Observações

Um especificador de tipo inválido foi passado para uma característica de tipo.

Saiba mais em Suporte para compilador de traços de tipo.

Exemplo

O exemplo a seguir gera C2140.

// C2140.cpp
// compile with: /clr /c
template <class T>

struct is_polymorphic {
   static const bool value = __is_polymorphic(T);
};

class x {};

generic <class T>
ref class C {
   void f() {
      System::Console::WriteLine(__is_polymorphic(T));   // C2140
      System::Console::WriteLine(is_polymorphic<T>::value);   // C2140

      System::Console::WriteLine(__is_polymorphic(x));   // OK
      System::Console::WriteLine(is_polymorphic<x>::value);   // OK
   }
};