For COM, in order to accommodate only a single pass I originally leveraged usingnamespace to mixin inherited interface functions. However, the resulting generated code is not easy to follow and this resulted in symbol conflicts, so, I namespaced all methods with the type/interface they came from <interface>_<method>, i.e.
render_target.ID2D1RenderTarget_GetPixelSize();
// rather than
render_target.GetPixelSize();
However, we now have a 2-pass system where we could accumulate the needed info for this, plus, the benefits of simplifying the generated code outweigh the benefits of keeping the generator simple, so let's do this.
For COM, in order to accommodate only a single pass I originally leveraged
usingnamespaceto mixin inherited interface functions. However, the resulting generated code is not easy to follow and this resulted in symbol conflicts, so, I namespaced all methods with the type/interface they came from<interface>_<method>, i.e.However, we now have a 2-pass system where we could accumulate the needed info for this, plus, the benefits of simplifying the generated code outweigh the benefits of keeping the generator simple, so let's do this.