https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88512
--- Comment #3 from Jonny Grant <jg at jguk dot org> --- Hi Marc I agree to useful to have the option to keep on for regular code. Perhaps a way just to turn off all expansive output for STL's std namespace? The easiest would be to remove cxx11 namespace from the messages "std::__cxx11::basic_string" etc, so at least that doesn't shwo. Updated output I had executed from STL with clear candidate suggestions: $ g++ -Wall -o stl_string stl_string.cpp stl_string.cpp: In function ‘int main()’: stl_string.cpp:7:27: error: no matching function for call to ‘std::string::erase(std::size_t&, std::string::iterator)’ str.erase(s, str.end()); ^ candidates are: std::string& std::string::erase(size_type index = 0, size_type count = npos) std::string::iterator std::string::erase(const_iterator first, const_iterator last) std::string::iterator std::string::erase(const_iterator position)