I know that C++ isn't Java and that it doesn't have my back (not sure Java does have my back, though). I'm just convinced that the "paying for what you use" concept is only applicable in non-debug/non-development builds.
.at()
always has a runtime cost, even in release builds. I was just trying to understand why standard library programmers decided against using asserts in debug/development builds. You're not expected to get maximum performance in non-release builds, so why not sacrifice a little more performance for safety and productivity while we're at it? —
Vittorio Romeo 2 mins ago