Hacker News new | ask | show | jobs
by x-shadowban 961 days ago
C++ only needs 4 things: gradually-introducable memory safety, static reflection, first-class compile time string manipulation, and adoption+refinement of its modules feature.
6 comments

That is the idea of C++ profiles, based on Ada's language profiles, being pushed by Bjarne Stroustoup.

Now, how willing WG21 and the compiler vendors are open to the idea, is anyone's guess.

I'd add less verbose ranges. Idk about memory safety, optional and expected are working pretty well for me (i just use it on personal projects though)
You can't possibly put syntactic sugar on the same level as memory safety.
I'd also vote for std::string split and join functions. And networking.
Qt?
Lol “only”
What’s the use case for static reflection?
C++ is a memory safe language if not abused.
Just don't write bugs!
It's impossible to memory leak even with bugs if you don't use antique parts of the language that won't pass any static analysis anyways.
Considering that Chromium, being one of the most heavily statically analyzed code bases, is full of commits which fix memory leaks, your comment makes absolutely no sense.

https://github.com/search?q=repo%3Achromium%2Fchromium+memor...

Chromium is a massive project spanning decades of intense active development that intricately connects just about every domain of programming.

A few leaks fixed per month is nothing. Further there is no major language promising no leaks once you include things like retained references to garbage and reference cycles. Leaks are one thing modern C++ solves pretty well.

Anything written by Google is absolute bottom of the barrel shit.

It's not indicative of anything average in the real world.

It's a bit hard to get an overview. But I did spot several uses of owning raw pointers and switching from those to managed ones. I'd say that's exactly the point I was trying to make.
What antique part of the language am I using in this bugged code?

    class A {};
    std::unique_ptr<A> array(new A[256]);
It's very easy to produce innocuous-looking code that contains leaks. (And yes, I know that make_unique solves the problem here.)
At this point I'd rather just write assembly language.
new