Partager via


Erreur du compilateur C2140

'type' : un type dépendant d’un paramètre de type générique n’est pas autorisé en tant qu’argument pour la caractéristique de type intrinsèque du compilateur 'trait'

Un spécificateur de type non valide a été passé à une caractéristique de type.

Pour plus d’informations, consultez Compiler Support for Type Traits (Prise en charge du compilateur pour les caractéristiques de type).

Exemple

L’exemple suivant génère l’erreur 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
   }
};