Erreur du compilateur C2786
'type' : opérande non valide pour __uuidof
L’opérateur __uuidof prend un type défini par l’utilisateur avec un GUID attaché ou un objet de ce type défini par l’utilisateur. Causes possibles :
L’argument n’est pas un type défini par l’utilisateur.
__uuidof
impossible d’extraire le GUID de l’argument.
L’exemple suivant génère l’erreur C2786 :
// C2786.cpp
struct __declspec(uuid("00000000-0000-0000-0000-000000000000")) A {};
int main() {
__uuidof(int); // C2786
__uuidof(int *); // C2786
__uuidof(A **); // C2786
// no error
__uuidof(A);
__uuidof(A *);
__uuidof(A &);
__uuidof(A[]);
int i;
int *pi;
A **ppa;
__uuidof(i); // C2786
__uuidof(pi); // C2786
__uuidof(ppa); // C2786
}