"Andrei Alexandrescu" <seewebsiteforem...@erdani.org> wrote in message 
news:kjenl8$1h4h$1...@digitalmars.com...
> On 4/2/13 9:34 AM, Daniel Murphy wrote:
>> Right now I'm up to 'get glue layer working' which needs 'allow C++ 
>> static
>> variables, member variables, static functions etc' which (for me) needs
>> 'move win32 C++ mangling into the frontend' which needs 'more free time'.
>> If anyone wants to have a go the plan is to just copy what the linux 
>> version
>> does. (cppmangle.c)
>
> How did you solve the problem that virtual functions for a given class are 
> spread out in several implementation files?
>
> Andrei

I'm not currently preserving file layout, so they are all merged into the 
class definitions.  It could also be done by generating forwarder functions 
or changing the language to allow out-of-class function bodies, if keeping 
the current organization is required.  I'm not a fan of out-of-class bodies 
but whatever is easiest.

Note that C++ code can still define the function bodies for extern(C++) 
classes, so there is no problem for the various glue layers.

In the future I would prefer to introduce real visitor objects.  The current 
approach of virtual functions + state structs leads to a lot of duplication 
for each pass that needs to walk the ast.  (semantic, toObj, cppMangle, 
toJson, apply, toChars, toCBuffer, interpret, toMangleBuffer, nothrow, 
@safe, toDelegate etc) 


Reply via email to