Index: ChangeLog =================================================================== --- ChangeLog (revision 250685) +++ ChangeLog (working copy) @@ -1,3 +1,34 @@ +2017-07-28 Daniel Kruegler + + PR libstdc++/79162 + Implement LWG 2946, LWG 2758's resolution missed further corrections + * include/bits/basic_string.h (basic_string::compare): Added missing + required noexcept specification. + * include/bits/basic_string.h (basic_string): Introduce internal + _S_to_string_view and __sv_wrapper for implicit string_view conversion. + * include/bits/basic_string.h (basic_string::basic_string): Fix explicit + string_view conversion by implicit conversion using _S_to_string_view and + __sv_wrapper. + * include/bits/basic_string.h (basic_string): Introduce internal + basic_string(__sv_wrapper, Alloc) constructor. + * include/bits/basic_string.h (basic_string): Fix operator=(T) template + by operator=(const T&) template for uncopyable types (79162). + * include/bits/basic_string.h (basic_string::operator+=, + basic_string::append, basic_string::assign, basic_string::insert, + basic_string::replace, basic_string::find, basic_string::rfind, + basic_string::find_first_of, basic_string::find_last_of, + basic_string::find_first_not_of, basic_string::find_last_not_of, + basic_string::compare): Replace __sv_type argument by template const T& + (LWG 2946) and corrected documentation describing __sv_type argument. + * include/bits/basic_string.h (basic_string::find, basic_string::rfind, + basic_string::find_first_of, basic_string::find_last_of, + basic_string::find_first_not_of, basic_string::find_last_not_of, + basic_string::compare): Replace unconditional noexcept specification by + conditional noexcept specification to balance the remove of noexcept by + LWG 2946. + * testsuite/21_strings/basic_string/79162.cc: New. + * testsuite/21_strings/basic_string/lwg2946.cc: New. + 2017-07-26 Jonathan Wakely * testsuite/27_io/basic_fstream/53984.cc: Fix test.