gcc/libstdc++-v3/include
Jonathan Wakely 4ff3e65090 Add allocator-extended copy/move ctors to COW string
Add these constructors from C++11 which were missing from the COW
basic_string. Additionally simplify the definitions of the
basic_string::reference and basic_string::const_reference types as
required by C++11.

This allows filesystem::path::string<Allocator>() to be simplified, so
that the same code is used for both basic_string implementations.

	* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export allocator-extended
	copy/move constructors for old std::basic_string.
	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
	(basic_string::reference, basic_string::const_reference): Define
	as plain references for C++11 and later.
	(basic_string::basic_string()): Put constructor body outside
	preprocessor conditional groups.
	(basic_string::basic_string(basic_string&&)): Move _Alloc_hider
	instead of copying it.
	(basic_string::basic_string(const basic_string&, const _Alloc&)):
	Define.
	(basic_string::basic_string(basic_string&&, const _Alloc&)):
	Define.
	* include/bits/fs_path.h [!_GLIBCXX_USE_CXX11_ABI]: Remove special
	cases for old basic_string.
	* testsuite/21_strings/basic_string/cons/char/8.cc: Test
	allocator-extended constructors unconditionally. Add extra members to
	allocator type when using old string ABI.
	* testsuite/21_strings/basic_string/allocator/71964.cc: Enable test
	for old string ABI.
	* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.

From-SVN: r267584
2019-01-04 23:23:17 +00:00
..
backward Update copyright years. 2019-01-01 13:31:55 +01:00
bits Add allocator-extended copy/move ctors to COW string 2019-01-04 23:23:17 +00:00
c Update copyright years. 2019-01-01 13:31:55 +01:00
c_compatibility Update copyright years. 2019-01-01 13:31:55 +01:00
c_global Update copyright years. 2019-01-01 13:31:55 +01:00
c_std Update copyright years. 2019-01-01 13:31:55 +01:00
debug PR libstdc++/88607 replace or remove unnecessary UTF-8 characters 2019-01-03 20:38:11 +00:00
decimal Update copyright years. 2019-01-01 13:31:55 +01:00
experimental PR libstdc++/88607 replace some more UTF-8 characters 2019-01-03 22:07:52 +00:00
ext Update copyright years. 2019-01-01 13:31:55 +01:00
parallel PR libstdc++/88607 replace or remove unnecessary UTF-8 characters 2019-01-03 20:38:11 +00:00
precompiled Update copyright years. 2019-01-01 13:31:55 +01:00
profile Update copyright years. 2019-01-01 13:31:55 +01:00
std PR libstdc++/88607 replace some more UTF-8 characters 2019-01-03 22:07:52 +00:00
tr1 Update copyright years. 2019-01-01 13:31:55 +01:00
tr2 Update copyright years. 2019-01-01 13:31:55 +01:00
Makefile.am Update copyright years. 2019-01-01 13:31:55 +01:00
Makefile.in Implement uniform container erasure for C++20. 2018-11-28 16:44:25 +00:00