extern(C) with function returning user type

Kyoji Klyden via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jul 31 14:35:27 PDT 2015


On Friday, 31 July 2015 at 19:13:18 UTC, Laeeth Isharc wrote:
> On Friday, 31 July 2015 at 17:14:29 UTC, Kyoji Klyden wrote:
>> On Friday, 31 July 2015 at 16:09:23 UTC, bachmeier wrote:
>>> On Friday, 31 July 2015 at 03:30:20 UTC, Kyoji Klyden wrote:
>>>> So idk, it feels silly and counterproductive to have D not 
>>>> able to natively use C libraries. Are we just gonna have to 
>>>> write D bindings to every notable library out there? Also I 
>>>> don't see how it'd be problematic, if you don't want a C 
>>>> preprocessor kicking in, then just don't import any C 
>>>> source, and then the compiler will just skip that step.  :P
>>>
>>> That's how you end up with C++. The solution there is to use 
>>> only a subset of the language, but since everyone has her own 
>>> subset, you can either learn the whole language or not 
>>> interact with anyone else's code. A tool-based solution is 
>>> much better.
>>
>> It's a fair argument. Regardless though, I feel like D has 
>> lost it practicality for me for the time being. I might come 
>> back to it in half a year and see if anything changes, but 
>> unfortunately I don't see myself using D for any of my 
>> projects I got lined up.
>
> You have to make the right decision for you.
>
> But from what you say, I am not sure if you are making it on 
> the basis of proper information about the tradeoffs involved.  
> It shouldn't be a difficult thing to port the headers for most 
> C libraries.  Use dstep to do the work, and a bit of tidying up 
> after (which gets easier each time).  Less time involved than 
> that involved in trying to fix just one nasty memory leak or 
> pointer problem in C code.
>
> Sometimes though, cashflow dominates return on investment.  If 
> one cannot spare the time then, ROI on learning something new 
> is irrelevant.  One can't do much about that in the short term.

I definitely agree with you there. I'm sure dstep could work 
quite well, but at the same time, for what I'm doing, there's 
nothing in D I couldn't do in C, and C's the one with the 
libraries + the endless supply of documentation. There really 
isn't any reward for that extra percent of time/effort spent when 
using D right now.
I still think D is rad, and will probably use it again sometime :)


More information about the Digitalmars-d-learn mailing list