gcc/libstdc++-v3/testsuite/24_iterators
François Dumont 807ad4bc85 libstdc++: Overload std::__to_address for __gnu_cxx::__normal_iterator.
Prefer to overload __to_address to partially specialize std::pointer_traits because
std::pointer_traits would be mostly useless. Moreover partial specialization of
pointer_traits<__normal_iterator<P, C>> fails to rebind C, so you get incorrect types
like __normal_iterator<long*, vector<int>>. In the case of __gnu_debug::_Safe_iterator
the to_pointer method is impossible to implement correctly because we are missing
the parent container to associate the iterator to.

libstdc++-v3/ChangeLog:

	* include/bits/stl_iterator.h
	(std::pointer_traits<__gnu_cxx::__normal_iterator<>>): Remove.
	(std::__to_address(const __gnu_cxx::__normal_iterator<>&)): New for C++11 to C++17.
	* include/debug/safe_iterator.h
	(std::__to_address(const __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<>,
	_Sequence>&)): New for C++11 to C++17.
	* testsuite/24_iterators/normal_iterator/to_address.cc: Add check on std::vector::iterator
	to validate both __gnu_cxx::__normal_iterator<> __to_address overload in normal mode and
	__gnu_debug::_Safe_iterator in _GLIBCXX_DEBUG mode.
2021-12-15 22:28:05 +01:00
..
associated_types
back_insert_iterator libstdc++: Implement P2325 changes to default-constructibility of views 2021-06-17 22:29:03 -04:00
bidirectional
common_iterator
contiguous
counted_iterator
customization_points libstdc++: Add [[nodiscard]] to iterators and related utilities 2021-08-04 12:54:28 +01:00
forward
front_insert_iterator libstdc++: Implement P2325 changes to default-constructibility of views 2021-06-17 22:29:03 -04:00
headers/iterator
indirect_callable
input
insert_iterator libstdc++: Implement P2325 changes to default-constructibility of views 2021-06-17 22:29:03 -04:00
istream_iterator libstdc++: Add [[nodiscard]] to iterators and related utilities 2021-08-04 12:54:28 +01:00
istreambuf_iterator libstdc++: Add [[nodiscard]] to iterators and related utilities 2021-08-04 12:54:28 +01:00
move_iterator libstdc++: Fix test that fails in C++20 mode 2021-11-26 22:56:51 +00:00
normal_iterator libstdc++: Overload std::__to_address for __gnu_cxx::__normal_iterator. 2021-12-15 22:28:05 +01:00
operations libstdc++: Fix _ForwardIteratorConcept for __gnu_debug::vector<bool> 2021-10-01 15:04:02 +01:00
ostream_iterator libstdc++: Implement P2325 changes to default-constructibility of views 2021-06-17 22:29:03 -04:00
ostreambuf_iterator libstdc++: Add [[nodiscard]] to iterators and related utilities 2021-08-04 12:54:28 +01:00
output libstdc++: Fix tests that use invalid types in ordered containers 2021-09-28 20:22:51 +01:00
random_access
range_access libstdc++: Add [[nodiscard]] to iterators and related utilities 2021-08-04 12:54:28 +01:00
range_operations libstdc++: Implement LWG 3392 for std::ranges::distance 2021-10-01 20:36:54 +01:00
reverse_iterator libstdc++: Use conditional noexcept in std::reverse_iterator [PR 94418] 2021-10-01 20:34:46 +01:00
aliases.cc
container_access.cc