Compartir a través de


Error del compilador C2140

"type": un tipo que depende de un parámetro de tipo genérico no se puede utilizar como argumento del rasgo de tipo intrínseco del compilador "trait".

Se pasó un especificador de tipo no válido a un rasgo de tipo.

Para más información, consulte Compatibilidad del compilador con rasgos de tipo.

Ejemplo

El ejemplo siguiente genera 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
   }
};