From: John M. <sw...@vo...> - 2011-01-29 19:03:59
|
> On 26/01/11 23:59, John McGehee wrote: > > The documentation (or comments in SWIG source code) said that the > > underlying type for anonymous enums is "always" int. Is there no way > > to specify uint? I have an enum value that does not fit in an int: > > > > // C++ > > class oaObject { > > public: > > ... > > // oacBaseDBType is UINT_MAX > > enum {dbType = oacBaseDBType}; > > ... > > }; > > > > Is it possible to change the underlying type for anonymous enums to > > uint? > > > The documentation should help: > http://www.swig.org/Doc2.0/CSharp.html#CSharp_enum_underlying_type > > William csbase works great when the enum has a name, but this is an anonymous enum. Anyway, I found that if I redefine UINT_MAX to -1, I can use int for all named and anonymous enums: // Set UINT_MAX as a C# compiler constant %csconst(1); // C# enums are int, not uint, so redefine UINT_MAX as an int #define UINT_MAX -1 // Back to runtime constants %csconst(0); Thank you for your help; only reply if you feel compelled to do so. John McGehee http://www.voom.net |