I need to create a wrapper between C++ and C#. I have a function very similar to this:
virtual SOMEINTERFACE* MethodName(ATTRIBUTE_TYPE attribType = ATTRIBUTE_TYPE::ATTRIB_STANDARD) = 0;
The enum
is declared like this:
enum class ATTRIBUTE_TYPE {
ATTRIB_STANDARD,
ATTRIB_LENGTH
};
How do I wrap that ATTRIBUTE_TYPE enum?
Your C++ enum is defined like this:
enum class ATTRIBUTE_TYPE {
ATTRIB_STANDARD,
ATTRIB_LENGTH
};
By default, enum class
types are int
sized. Which means that you can translate this to C# like so:
enum ATTRIBUTE_TYPE {
ATTRIB_STANDARD,
ATTRIB_LENGTH
};
That's all there is to it. A C# enum is blittable and this C# enum maps exactly on to your C++ enum.