extern(C) with function returning user type

bachmeier via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Jul 30 04:32:09 PDT 2015


On Thursday, 30 July 2015 at 01:14:06 UTC, Mike Parker wrote:
> On Wednesday, 29 July 2015 at 18:42:45 UTC, Kyoji Klyden wrote:
>> Thanks for the replies,
>>
>> This issue really highlights one of D's weak points I think.
>>
>> I've atleast got a round about solution almost working. :P
>
> Really? I see it as one of D's strengths. It's much easier to 
> connect D with C than it is to connect other languages with C. 
> Essentially, you're just rewriting the C header in D and that's 
> it. It's as simple as it can get without the compiler being 
> able to directly parse C headers. In that case, the compiler 
> would either be needlessly complex or have a dependency on 
> something like libclang. This is much more appropriate for a 
> tool, not the compiler. Besides, it's quite easy to do it by 
> hand.

I agree. The last thing we want is C header files being valid D 
code. It would make C programmers happy, but understanding those 
ugly files would then become a requirement for anyone coming from 
a different background, and that would not be good. Trivial 
interoperability (even if it's inconvenient) that leaves the two 
languages separate is far better.


More information about the Digitalmars-d-learn mailing list