Hacker News new | ask | show | jobs
by throwsincenotpc 3529 days ago
> But then there is the idea of ignoring legacy C++ and treating Modern C++ as a new language altogether.

There is no "ignoring legacy C++", when you will have to deal with this or that library written 10/15 years ago. C++ is a language where you can't just ignore some parts of it just because they are inconvenient.

As for C++ vs Rust, Rust is memory safe, C++ is not and will never be despite all the bells and whistles it gets.

1 comments

What is "memory safe" for you? If you use C arrays and raw pointers in your C++17 code, it's definitely not memory safe, but the main problem is that it's not modern C++.
Even modern C++ isn't memory safe. Most straightforward example is to move a uniq_ptr, which makes it a nullptr, ready to be dereferenced and cause UB.
How does it happen? Non-const unique_ptr& used as a function parameter?
I can simplify your example:

  unique_ptr<int> p;
  auto n = *p; // C++ kills!