Compiler Error C2786
Collapse the table of content
Expand the table of content
This documentation is archived and is not being maintained.

Compiler Error C2786

'type' : invalid operand for __uuidof

The __uuidof operator takes a user-defined type with a GUID attached or an object of such a user-defined type.

Possible causes

  • The argument is not a user-defined type.
  • _uuidof cannot extract the GUID from the argument.


// C2786.cpp
struct __declspec(uuid("00000000-0000-0000-0000-000000000000")) A {

void MyFunction(void)
    __uuidof(int);     // C2786
    __uuidof(int *);   // C2786
    __uuidof(A **);    // C2786

// no error
    __uuidof(A *);
    __uuidof(A &);

    int i;
    int *pi;
    A **ppa;

    __uuidof(i);      // C2786
    __uuidof(pi);     // C2786
    __uuidof(ppa);    // C2786
© 2016 Microsoft