C++ noexcept for a function not throwing exceptions, but can cause a memory failure
For example, it's pretty common to have two separate ways to access elements of a private array, overloading the array subscripting operator, or defining at : T& operator[](size_t i) { return v[i]; } T const& operator[](size_t i) const { return v[i]; } T& at(size_t i) { if (i >= length) throw out_of_range("You shall not pass!"); return v[i]; } T const& at(size_t i) const { if (i >= length) throw out_of_range("You shall not pass!"); return v[i]; } The at version can throw an exception, but the array subscripting operator can't. My question is, altough the operator[] doesn't throw an exception,