Compiler Error C3181
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 C3181.
type' : invalid operand for operator
An invalid parameter was passed to the __typeof or typeid operator. The parameter must be a managed type.
Note that the compiler uses aliases for native types that map to types in the common language runtime.
The following sample generates C3181:
// C3181a.cpp
// compile with: /clr
using namespace System;
int main() {
Type ^pType1 = interior_ptr<int>::typeid; // C3181
Type ^pType2 = int::typeid; // OK
}
The following sample generates C3181:
// C3181b.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
using namespace System;
int main() {
Type *pType1 = __typeof(int __gc*); // C3181
Type *pType2 = __typeof(int*); // OK
}
Show: