gcc/libstdc++-v3/include/bits
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
..
algorithmfwd.h Update copyright years. 2019-01-01 13:31:55 +01:00
alloc_traits.h Update copyright years. 2019-01-01 13:31:55 +01:00
allocated_ptr.h Update copyright years. 2019-01-01 13:31:55 +01:00
allocator.h Update copyright years. 2019-01-01 13:31:55 +01:00
atomic_base.h Update copyright years. 2019-01-01 13:31:55 +01:00
atomic_futex.h Update copyright years. 2019-01-01 13:31:55 +01:00
basic_ios.h Update copyright years. 2019-01-01 13:31:55 +01:00
basic_ios.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
basic_string.h Add allocator-extended copy/move ctors to COW string 2019-01-04 23:23:17 +00:00
basic_string.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
boost_concept_check.h Update copyright years. 2019-01-01 13:31:55 +01:00
c++0x_warning.h Update copyright years. 2019-01-01 13:31:55 +01:00
c++config Update copyright years. 2019-01-01 13:31:55 +01:00
char_traits.h Update copyright years. 2019-01-01 13:31:55 +01:00
codecvt.h Update copyright years. 2019-01-01 13:31:55 +01:00
concept_check.h Update copyright years. 2019-01-01 13:31:55 +01:00
cpp_type_traits.h Update copyright years. 2019-01-01 13:31:55 +01:00
deque.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
enable_special_members.h Update copyright years. 2019-01-01 13:31:55 +01:00
erase_if.h Update copyright years. 2019-01-01 13:31:55 +01:00
forward_list.h PR libstdc++/88607 replace or remove unnecessary UTF-8 characters 2019-01-03 20:38:11 +00:00
forward_list.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
fs_dir.h Update copyright years. 2019-01-01 13:31:55 +01:00
fs_fwd.h Update copyright years. 2019-01-01 13:31:55 +01:00
fs_ops.h Update copyright years. 2019-01-01 13:31:55 +01:00
fs_path.h Add allocator-extended copy/move ctors to COW string 2019-01-04 23:23:17 +00:00
fstream.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
functexcept.h Update copyright years. 2019-01-01 13:31:55 +01:00
functional_hash.h Update copyright years. 2019-01-01 13:31:55 +01:00
gslice.h Update copyright years. 2019-01-01 13:31:55 +01:00
gslice_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
hashtable.h Update copyright years. 2019-01-01 13:31:55 +01:00
hashtable_policy.h Update copyright years. 2019-01-01 13:31:55 +01:00
indirect_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
invoke.h Update copyright years. 2019-01-01 13:31:55 +01:00
ios_base.h Update copyright years. 2019-01-01 13:31:55 +01:00
istream.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
list.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
locale_classes.h Update copyright years. 2019-01-01 13:31:55 +01:00
locale_classes.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
locale_conv.h Update copyright years. 2019-01-01 13:31:55 +01:00
locale_facets.h Update copyright years. 2019-01-01 13:31:55 +01:00
locale_facets.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
locale_facets_nonio.h Update copyright years. 2019-01-01 13:31:55 +01:00
locale_facets_nonio.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
localefwd.h Update copyright years. 2019-01-01 13:31:55 +01:00
mask_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
memoryfwd.h Update copyright years. 2019-01-01 13:31:55 +01:00
move.h Update copyright years. 2019-01-01 13:31:55 +01:00
node_handle.h Update copyright years. 2019-01-01 13:31:55 +01:00
ostream.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
ostream_insert.h Update copyright years. 2019-01-01 13:31:55 +01:00
parse_numbers.h Update copyright years. 2019-01-01 13:31:55 +01:00
postypes.h Update copyright years. 2019-01-01 13:31:55 +01:00
predefined_ops.h Update copyright years. 2019-01-01 13:31:55 +01:00
ptr_traits.h Update copyright years. 2019-01-01 13:31:55 +01:00
quoted_string.h Update copyright years. 2019-01-01 13:31:55 +01:00
random.h Update copyright years. 2019-01-01 13:31:55 +01:00
random.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
range_access.h Update copyright years. 2019-01-01 13:31:55 +01:00
refwrap.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
regex_automaton.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_automaton.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
regex_compiler.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_compiler.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
regex_constants.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_error.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_executor.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_executor.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
regex_scanner.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_scanner.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
shared_ptr.h Update copyright years. 2019-01-01 13:31:55 +01:00
shared_ptr_atomic.h Update copyright years. 2019-01-01 13:31:55 +01:00
shared_ptr_base.h Update copyright years. 2019-01-01 13:31:55 +01:00
slice_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
specfun.h Update copyright years. 2019-01-01 13:31:55 +01:00
sstream.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
std_abs.h Update copyright years. 2019-01-01 13:31:55 +01:00
std_function.h Update copyright years. 2019-01-01 13:31:55 +01:00
std_mutex.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_algo.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_algobase.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_bvector.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_construct.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_deque.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_function.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_heap.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_iterator.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_iterator_base_funcs.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_iterator_base_types.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_list.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_map.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_multimap.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_multiset.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_numeric.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_pair.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_queue.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_raw_storage_iter.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_relops.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_set.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_stack.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_tempbuf.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_tree.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_uninitialized.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_vector.h Update copyright years. 2019-01-01 13:31:55 +01:00
stream_iterator.h Update copyright years. 2019-01-01 13:31:55 +01:00
streambuf.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
streambuf_iterator.h Update copyright years. 2019-01-01 13:31:55 +01:00
string_view.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
stringfwd.h Update copyright years. 2019-01-01 13:31:55 +01:00
uniform_int_dist.h Update copyright years. 2019-01-01 13:31:55 +01:00
unique_lock.h Update copyright years. 2019-01-01 13:31:55 +01:00
unique_ptr.h Update copyright years. 2019-01-01 13:31:55 +01:00
unordered_map.h Update copyright years. 2019-01-01 13:31:55 +01:00
unordered_set.h Update copyright years. 2019-01-01 13:31:55 +01:00
uses_allocator.h Update copyright years. 2019-01-01 13:31:55 +01:00
valarray_after.h Update copyright years. 2019-01-01 13:31:55 +01:00
valarray_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
valarray_array.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
valarray_before.h Update copyright years. 2019-01-01 13:31:55 +01:00
vector.tcc Update copyright years. 2019-01-01 13:31:55 +01:00