C++ or D?
Paulo Pinto
pjmlp at progtools.org
Wed Dec 30 21:03:36 UTC 2020
On Thursday, 24 December 2020 at 08:36:54 UTC, RSY wrote:
> On Wednesday, 23 December 2020 at 19:00:14 UTC, evilrat wrote:
>> On Wednesday, 23 December 2020 at 18:03:56 UTC, frame wrote:
>>>
>>> It's not the problem mentioned but I had to struggle with
>>> DLLs and D's Variant-type. The problem is that Variant uses
>>> TypeInfo which does not pass DLL boundaries correctly so that
>>> int != int in runtime even it's in fact a simple int.
>>>
>>> If you need to exchange unknown data between a DLL and your
>>> application you need to get a workaround and cannot use that
>>> elsewhere settled nice feature. But it's a Windows specific
>>> issue - it works as expected on other systems.
>>
>> Which is basically same as in C++, despite the fact it does
>> have real working SO/DLL runtime's many large projects have
>> their own RTTI implementation. LLVM has its own RTTI because
>> standard type info is "inefficient", Unreal Engine has its
>> own, IIRC Qt too has its own, etc...
>>
>> Same thing with D Variant, some people say it is
>> "inefficient"... so we ended up having multiple libraries.
>>
>> Not saying anything about how good or bad all this, just the
>> facts.
>
> C++ you need to write duplicate code (.h and .cpp)
>
> C++ you need to care about header include order
>
> C++ you need to forward declare everything you gonna use if it
> is not included before
>
> C++ you need to waste time waiting for compile
>
Fixed with C++20 modules.
I am already playing with the experimental support on VC++.
> C++ you need to fight to get proper reflection
>
Coming in C++23, and partially available already with a mix of
type traits and constexpr.
I am all good for D vs C++, but one needs to update their
knowledge specially when the audience is up to date with latest
ISO C++'s capabilities.
More information about the Digitalmars-d-learn
mailing list