Request Assistance Calling D from C++: weird visibility issue inside struct and namespace

Petar Petar
Wed Nov 8 08:42:01 UTC 2017


On Wednesday, 8 November 2017 at 07:55:02 UTC, Andrew Edwards 
wrote:
> On Wednesday, 8 November 2017 at 07:30:34 UTC, evilrat wrote:
>> On Wednesday, 8 November 2017 at 06:34:27 UTC, Andrew Edwards
>>
>> just using fully qualified name didn't make it?
>>
>> void call_cpp() {
>>     ::foo("do great things"); // calling global foo
>>     return;
>> }
>>
>
> No, it did not.
>
>> Are you sure you put it in a namespace in C++ too?
>
> Yes. That wasn't the issue
>
>> otherwise there might be some name mangling incompatibility 
>> that probably worth filling a bug report
>
> That's the one. Thanks to the hint form, Nicholas Wilson, I was 
> able to track it down and resolve it with a call to 
> pragma(mangle).
>
> -Andrew

Walter has recently been working on improving the C++ mangling, 
so be sure to test the latest dmd nightly build and if that 
doesn't work be sure to file bug report(s).

https://github.com/dlang/dmd/pull/7250
https://github.com/dlang/dmd/pull/7259
https://github.com/dlang/dmd/pull/7272


More information about the Digitalmars-d-learn mailing list