News for hackers. Stuff that matters.
Re:In Defense of C++ by Attrecomet on Wednesday September 17, 2025 @06:44AM (#45274115)
Am I missing anything in the article about this problem in particular? Owning references are a part of modern C++, which should be covered by the author's arguments.
Re:In Defense of C++ by aw1621107 on Wednesday September 17, 2025 @10:34AM (#45276325)
> Owning references are a part of modern C++

Maybe we're thinking of different things, but I don't think C++ has owning references, modern or not? There's regular references (&) which are definitely not owning, and owning pointers (unique_ptr and friends), but neither of those quite match Rust's &.

Re:In Defense of C++ by Attrecomet on Friday September 19, 2025 @06:44AM (#45300122)
Ah, okay, that is a good point. I was not aware of that subtle difference, and replaced "owning reference" with "owning pointer" in my mind.
Re:In Defense of C++ by steveklabnik on Wednesday September 17, 2025 @11:26AM (#45277006)
I think your parent may be slightly confused, in the sense of terminology: "owning reference" is a contradiction in Rust terms.

Here's the document I believe your parent is referring to: https://docs.google.com/document/d/e/2PACX-1vSt2VB1zQAJ6JDMa...

The claim in the article:

> Yes, C++ can be made safer; in fact, it can even be made memory safe.

The claim from this document:

> We attempted to represent ownership and borrowing through the C++ type system, however the language does not lend itself to this. Thus memory safety in C++ would need to be achieved through runtime checks.

It doesn't use "owning reference" anywhere.

Re:In Defense of C++ by Attrecomet on Friday September 19, 2025 @06:47AM (#45300140)
Thanks for the clarification!

However, I also got confused, and just subsituted "pointer" for "reference" in my head. References, apart from smart pointers, are indeed a problem for memory safety.

Re:In Defense of C++ by kronicum2025 on Tuesday September 23, 2025 @12:05PM (#45348935)
I meant to say exclusively owned references.