gcc/libstdc++-v3
Daniel Kruegler df66af3b1e PR libstdc++/79162 implement LWG 2946 and LWG 2758
2017-09-04  Daniel Kruegler  <daniel.kruegler@gmail.com>

	PR libstdc++/79162
	Implement LWG 2946, LWG 2758's resolution missed further corrections
	* include/bits/basic_string.h (basic_string::compare): Add missing
	required noexcept specifications.
	(basic_string): Introduce internal _S_to_string_view and __sv_wrapper
	for implicit string_view conversion.
	(basic_string::basic_string): Fix explicit string_view conversion by
	implicit conversion using _S_to_string_view and __sv_wrapper.
	(basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
	constructor.
	(basic_string): Fix operator=(T) template by operator=(const T&)
	template for uncopyable types (PR 79162).
	(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 correct
	documentation describing __sv_type argument.
	(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 partially balance the removal of noexcept by LWG 2946.
	* testsuite/21_strings/basic_string/79162.cc: New.
	* testsuite/21_strings/basic_string/lwg2946.cc: New.

From-SVN: r251664
2017-09-04 16:48:47 +01:00
..
config PR libstdc++/81751 don't call fflush(NULL) 2017-08-09 18:52:10 +01:00
doc Add AddressSanitizer annotations to std::vector 2017-07-21 17:05:10 +01:00
include PR libstdc++/79162 implement LWG 2946 and LWG 2758 2017-09-04 16:48:47 +01:00
libsupc++ new (bad_array_new_length): Remove redundant semicolon after in-class member function definition. 2017-07-19 16:59:00 +00:00
po
python re PR libstdc++/81064 (Inline namespace regression) 2017-07-23 08:41:35 +00:00
scripts
src re PR c/81854 (weak alias of an incompatible symbol accepted) 2017-08-20 15:31:39 -06:00
testsuite PR libstdc++/79162 implement LWG 2946 and LWG 2758 2017-09-04 16:48:47 +01:00
acinclude.m4 PR libstdc++/81092 add std::wstring symbols and bump library version 2017-06-16 12:54:59 +01:00
aclocal.m4
ChangeLog PR libstdc++/79162 implement LWG 2946 and LWG 2758 2017-09-04 16:48:47 +01:00
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-2016
config.h.in PR libstdc++/67578 Implement non-trivial std::random_device::entropy 2017-05-23 17:11:57 +01:00
configure PR libstdc++/81092 Regenerate configure for libtool_VERSION change 2017-06-21 09:55:26 +01:00
configure.ac PR libstdc++/67578 Implement non-trivial std::random_device::entropy 2017-05-23 17:11:57 +01:00
configure.host
crossconfig.m4 Fix cross compilation to Solaris 2017-06-01 13:50:03 +00:00
fragment.am
linkage.m4
Makefile.am
Makefile.in
README

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.