On Tuesday, 24 July 2018 at 11:53:35 UTC, Ecstatic Coder wrote:
On Tuesday, 24 July 2018 at 10:40:33 UTC, Dukc wrote:
On Monday, 23 July 2018 at 15:06:16 UTC, Ecstatic Coder wrote:
And something that REALLY must be integrated into BetterC's low-level standard library in some way IMHO...

They already work, except for the concatenation operator because it obviously requires the GC. And converiting a pointer from C code to D is easy, because you can slice pointers just like arrays -it's just that it won't be bounds checked.

Nice.

But if you want D to be REALLY appealing to a majority of C++ developers, you'd better provide them with the FULL D experience.

And unfortunately, using builtin arrays/strings/slices/maps in the usual way is probably a big part for it.

Don't forget that concatenating strings in C++ is perfectly ALLOWED in C++, WITHOUT using a GC...

#include <iostream>

using namespace std;

int main()
{
    string str, str1, str2;
    str1 = "Hello";
    str2 = "World";
    str = str1 + " " + str2;
    cout << str << endl;

    return 0;
}


Recently in my code base where similar concatenation worked fine in debug mode but crashed in release mode: Win64, VS2017. Worked fine on Linux, GCC 7.3. Had to use std::ostringstream to resolve it, or use use .append().

These kind of UB is what makes a language esoteric. C wins the lot for UBs nevertheless!

Reply via email to