version and extern problems
    torhu 
    fake at address.dude
       
    Sun Jul  8 09:19:10 PDT 2007
    
    
  
torhu wrote:
> Mike Wey wrote:
>> Should this work?
>> 
>> version(Windows)
>> {   const char[] external = "extern(Windows):"; }
>> else
>> {   const char[] external = "extern(C):"; }
>> 
>> mixin(external);
>> typedef void function() foo;
>> 
> 
> DMD 1.018 accepts that.  But maybe that's a bug too, since string mixins 
> are supposed to be either an expression, a statement, or a declaration 
> or definition?  According to the spec, it seems to be a valid 
> AttributeSpecifier, which in turn is a valid DeclDef.  But Walter didn't 
> suggest it as a workaround, which makes me worried.
That the mixing trick works might be as bad as that this works:
---
version (Windows)
     extern (Windows):
---
Being able to insert 'extern (Windows):' using a string mixin seems 
equally bad to me.  Where's the important difference?
    
    
More information about the Digitalmars-d
mailing list