gcc/libstdc++-v3/include/experimental
Jonathan Wakely 49d729eaee Refactor path construction from null terminated iterator ranges
Move duplicated code to new _S_string_from_iter function and fix
constraints to accept iterators with const value type.

	* include/bits/fs_path.h (path::__is_encoded_char): Change from class
	template to alias template.
	(path::__value_type_is_char): Use remove_const_t.
	(path:_S_string_from_iter): New helper function.
	(path::_S_convert(InputIter, __null_terminated))
	(path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
	Use _S_string_from_iter.
	(path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
	rep for COW strings.
	* include/experimental/bits/fs_path.h (path::__is_encoded_char):
	Change from class template to alias template.
	(path::__value_type_is_char): Use remove_const.
	(path:_S_string_from_iter): New helper function.
	(path::_S_convert(InputIter, __null_terminated))
	(path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
	Use _S_string_from_iter.
	* testsuite/27_io/filesystem/path/append/source.cc: Test appending
	wide strings.
	* testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
	string equality, not path equivalence.
	* testsuite/27_io/filesystem/path/construct/format.cc: Check
	construction from std::string and std::wstring and input iterators.
	* testsuite/27_io/filesystem/path/construct/locale.cc: Check
	construction from iterators.
	* testsuite/experimental/filesystem/path/concat/strings.cc: Check for
	exact string equality, not path equivalence.
	* testsuite/experimental/filesystem/path/construct/locale.cc: Check
	construction from iterators.

From-SVN: r260628
2018-05-23 23:48:51 +01:00
..
bits Refactor path construction from null terminated iterator ranges 2018-05-23 23:48:51 +01:00
algorithm Update copyright years. 2018-01-03 11:03:58 +01:00
any Update copyright years. 2018-01-03 11:03:58 +01:00
array Update copyright years. 2018-01-03 11:03:58 +01:00
chrono Update copyright years. 2018-01-03 11:03:58 +01:00
deque Update copyright years. 2018-01-03 11:03:58 +01:00
filesystem Update copyright years. 2018-01-03 11:03:58 +01:00
forward_list Update copyright years. 2018-01-03 11:03:58 +01:00
functional PR libstdc++/83607 specialize Boyer-Moore searchers for std::byte 2018-01-04 10:21:29 +00:00
iterator Update copyright years. 2018-01-03 11:03:58 +01:00
list Update copyright years. 2018-01-03 11:03:58 +01:00
map Update copyright years. 2018-01-03 11:03:58 +01:00
memory Update copyright years. 2018-01-03 11:03:58 +01:00
memory_resource Update copyright years. 2018-01-03 11:03:58 +01:00
numeric Update copyright years. 2018-01-03 11:03:58 +01:00
optional Update copyright years. 2018-01-03 11:03:58 +01:00
propagate_const Update copyright years. 2018-01-03 11:03:58 +01:00
random Update copyright years. 2018-01-03 11:03:58 +01:00
ratio Update copyright years. 2018-01-03 11:03:58 +01:00
regex Update copyright years. 2018-01-03 11:03:58 +01:00
set Update copyright years. 2018-01-03 11:03:58 +01:00
source_location Update copyright years. 2018-01-03 11:03:58 +01:00
string Update copyright years. 2018-01-03 11:03:58 +01:00
string_view Update copyright years. 2018-01-03 11:03:58 +01:00
system_error Update copyright years. 2018-01-03 11:03:58 +01:00
tuple Update copyright years. 2018-01-03 11:03:58 +01:00
type_traits Update copyright years. 2018-01-03 11:03:58 +01:00
unordered_map Update copyright years. 2018-01-03 11:03:58 +01:00
unordered_set Update copyright years. 2018-01-03 11:03:58 +01:00
utility Update copyright years. 2018-01-03 11:03:58 +01:00
vector Update copyright years. 2018-01-03 11:03:58 +01:00