These should wait for stage 1 but I'm posting them now for comment. With the change to __gnu_debug::__valid_range we now get a debug assertion for: std::string s; std::min_element(std::string::iterator{}, s.end()); where previously it would just crash with undefined behaviour.