gcc/libstdc++-v3/testsuite
Jonathan Wakely 988b853f9c libstdc++: Simplify filesystem::path SFINAE constraints
This replaces the filesystem::__detail::_Path SFINAE helper with two
separate helpers, _Path and _Path2. This avoids having one helper which
tries to check two different sets of requirements.

The _Path helper now uses variable templates instead of a set of
overloaded functions to detect specializations of basic_string or
basic_string_view.

The __not_<is_void<remove_pointer_t<_Tp1>> check is not necessary in
C++20 because iterator_traits<void*> is now empty. For C++17 replace
that check with a __safe_iterator_traits helper with partial
specializations for void pointers.

Finally, the __is_encoded_char check no longer uses remove_const_t,
which means that iterators with a const value_type will no longer be
accepted as arguments for path creation. Such iterators resulted in
undefined behaviour anyway, so it's still conforming to reject them in
the constraint checks.

	* include/bits/fs_path.h (filesystem::__detail::__is_encoded_char):
	Replace alias template with variable template. Don't remove const.
	(filesystem::__detail::__is_path_src): Replace overloaded function
	template with variable template and specializations.
	(filesystem::__detail::__is_path_iter_src): Replace alias template
	with class template.
	(filesystem::__detail::_Path): Use __is_path_src. Remove support for
	iterator pairs.
	(filesystem::__detail::_Path2): New alias template for checking
	InputIterator requirements.
	(filesystem::__detail::__constructible_from): Remove.
	(filesystem::path): Replace _Path<Iter, Iter> with _Path2<Iter>.
	* testsuite/27_io/filesystem/path/construct/80762.cc: Check with two
	constructor arguments of void and void* types.
2020-05-23 09:40:16 +01:00
..
17_intro libstdc++: Add more tests for _E10, _E11 etc. (PR 94901) 2020-05-01 14:49:48 +01:00
18_support
19_diagnostics
20_util c++: Explain fn template argument type/value mismatches [PR66439] 2020-05-18 23:50:14 -04:00
21_strings libstdc++: Fixes for feature test macros (PR 91480) 2020-04-28 23:40:18 +01:00
22_locale
23_containers libstdc++: Fix regression in std::_Construct (PR 94831) 2020-04-28 23:39:38 +01:00
24_iterators libstdc++: Avoid constraint recursion with iterator_traits (PR 93983) 2020-05-21 07:32:15 +01:00
25_algorithms libstdc++ std::fill overload for std::vector<bool>::iterator 2020-05-06 23:28:22 +02:00
26_numerics libstdc++: Use RDRAND as fallback if RDSEED keeps failing (PR 94087) 2020-05-19 23:04:45 +01:00
27_io libstdc++: Simplify filesystem::path SFINAE constraints 2020-05-23 09:40:16 +01:00
28_regex
29_atomics Actually comment the new tests 2020-05-12 07:38:28 +02:00
30_threads libstdc++: Update value of __cpp_lib_jthread macro 2020-04-22 22:54:34 +01:00
abi
backward
config
data
decimal
experimental libstdc++: Fix net::basic_socket::close(error_code&) 2020-05-21 00:59:55 +01:00
ext libstdc++: Avoid errors in allocator's noexcept-specifier (PR 89510) 2020-04-30 16:01:43 +01:00
lib libstdc++: Fix PSTL tests to run correctly with newer Thread Building Blocks 2020-04-21 01:05:13 -07:00
libstdc++-abi
libstdc++-dg
libstdc++-prettyprinters
libstdc++-xmethods
performance
special_functions
std libstdc++: Fix subrange::advance and subrange::prev (LWG 3433) 2020-04-28 16:43:23 -04:00
tr1
tr2
util
Makefile.am libstdc++: Enable simple invocation of runtest in testsuite 2020-05-21 14:16:19 +01:00
Makefile.in libstdc++: Enable simple invocation of runtest in testsuite 2020-05-21 14:16:19 +01:00