Partilhar via


Erro do compilador C2140

'type' : um tipo que depende de um parâmetro de tipo genérico não é permitido como argumento para compilar o traço de tipo intrínseco 'trait'

Observações

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

Para obter mais informações, consulte Suporte do compilador para características 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
   }
};