Compiler Error C2786
Visual Studio 2015
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at 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.
__uuidofcannot extract the GUID from the argument.
The following sample generates 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
}
Show: