From: David P. <dpi...@me...> - 2012-04-18 17:12:09
|
> -----Original Message----- > From: glpk xypron [mailto:xyp...@gm...] > Sent: Wednesday, April 18, 2012 12:08 AM > To: swi...@li... > Subject: [Swig-user] #define S_LEN sizeof(LEN) > > Dear all, > > primitive definitions like > > #define S_LEN 0x1 > > are mapped to constants in Java classes by SWIG. > > Nonprimitive definitions like > > #define S_LEN sizeof(LEN) > #define S_X offset(LEN, x) > > are not mapped. > > Is there a way to map nonprimitive definitions, e.g. using typemaps? Well, "static const int S_LEN = sizeof(LEN)" is mapped to a property. And "enum { S_LEN = sizeof(LEN) };" is mapped to a pseudo-constant when I use C# as the target (public static readonly int). I don't think SWIG can evaluate sizeof(), so you can't get a "real" constant; a C++ call is required to get the value. (But in C# at least, SWIG seems to use C++ calls for everything except named enums anyway.) |