On 05/08/2014 08:20, Alex Peshkoff wrote: > > I want to suggest a first draft of [very restricted] IDL implementation > for firebird that should solve all mentioned problems. As an additional > non-mentioned before feature it solves the problem of making interface > version upgrade compiler independent and reliable. > > I tried to make some adjustments on the implementation part (to not need to #include file multiple times), but I see a more big problem.
The implementation rely on method shadowing. So if I have Impl : Interface { void method1() { method2(); } method2() { } } and ImplSpecialization : Impl // Not supported by yours headers, but should be IMO { method2() { } } When calling method1() from ImplSpecialization instance, it will call Impl::method2 instead of ImplSpecialization::method2. Do you have some suggestion for this? I also think the version checks must be automatic at least in the C++ API, but calling getVersion in each call is not good. Maybe we can always insert 10 or so pointers to notImplemented() method in the end of each vtable. Adriano ------------------------------------------------------------------------------ Infragistics Professional Build stunning WinForms apps today! Reboot your WinForms applications with our WinForms controls. Build a bridge from your legacy apps to the future. http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel