Erreur du compilateur C2139
'type' : une classe non définie n’est pas autorisée en tant qu’argument pour la caractéristique intrinsèque du compilateur 'trait'
Un argument non valide a été passé à une caractéristique de type.
Notes
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 C2139.
// C2139.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
template <class T>
struct is_polymorphic {
static const bool value = __is_polymorphic(T);
};
class C;
class D {};
class E {
public:
virtual void Test() {}
};
int main() {
cout << is_polymorphic<C>::value << endl; // C2139
cout << is_polymorphic<D>::value << endl; // OK
cout << is_polymorphic<E>::value << endl; // OK
}