News for hackers. Stuff that matters.
Re:You've just inherited a legacy C++ codebase, now what? by bluGill on Thursday February 29, 2024 @05:26PM (#39556061)
vector.at() is memory safe. You get a choice. Easy to ban [] if you cannot statically prove it is safe.

C++11 isn't the most memory safe language, but C++11 is a lot safer than older versions, and C++23 is better yet. I'm expecting true memory safety in C++26 (time will tell), but it will be opt-in profiles which isn't ideal.

Re:You've just inherited a legacy C++ codebase, now what? by z_open on Friday March 01, 2024 @03:17AM (#39559708)
This is not idiomatic C++ in any C++ standard. You can also just replace vector with map so the brackets insert, but that isn't either.
Re:You've just inherited a legacy C++ codebase, now what? by bluGill on Friday March 01, 2024 @08:28AM (#39561560)
Prefer at to [] is standard where I write C++. map is not standard because vector is almost always much faster random access in the real world (that is n is normally small enough that a linear search is faster than a binary search because of caching)