
Jonathan Turkanis wrote:
Daniel Wallin wrote:
Jonathan Turkanis wrote: [...]
Yes, I'm interested. I'm pretty comfortable implementing the current feature set with above syntax. I'd certainly be interested in you ideas about extensibility, however.
Here's some PP-code that allows a pretty optimal syntax.
Thanks, Daniel! I wasn't sure how to handle cv-qualifiers, and so was pretty much resigned to using CONST_FN or something like that, and ignoring volatile in the macro-based IDL.
One thing that remains is to figure out how to handle base interface lists and member typedefs. Any suggestions would be very welcome.
How about: INTERFACE( Base1 , ... ); INTERFACE( (Derived, (Base1)(Base2)(..)) , ... ); For base lists? And I believe this can work for typedef's on gcc: INTERFACE( MyInterface , ((ostream&)(int) const) ((char)(float)) typedef (int, my_type) typedef (float, my_float) ); Again, I don't know how portable these things are. Maybe a PP guru could give us a verdict. -- Daniel Wallin