extern(C++, ns)

Daniel N via Digitalmars-d digitalmars-d at puremagic.com
Mon Jan 11 03:36:58 PST 2016


On Monday, 11 January 2016 at 08:56:40 UTC, Jacob Carlborg wrote:
> On 2016-01-11 02:20, Manu via Digitalmars-d wrote:
>
>> Sadly, I don't have any more time I can allocate to this, I'll 
>> have to
>> chip away at it any further after hours. I really hoped I 
>> could get
>> this working over Christmas.
>> I'll continue to try and reduce the structure of the problem, 
>> but I
>> still just wish you'd remove the namespace scope. Everything 
>> would be
>> fixed instantly, I am certain of this.
>> This design doesn't give us anything, and you seem to be 
>> resisting
>> making an argument for its existence. We don't need to do 
>> this, we
>> don't need to waste any more time.
>
> Would it be possible to make the code available somewhere. 
> Remove the implementations and rename the symbols, or would 
> that be too much work?

I may have found a workaround... (verified with dmd 2.069.2), 
works better than alias since everything inside ns can be made 
private.

enum bindings = q{
   pragma(mangle, ns.fun.mangleof)
   extern(C++)
   void fun();
};

private extern(C++, ns)
{
private:
   mixin(bindings);
}

mixin(bindings);




More information about the Digitalmars-d mailing list