gcc/libstdc++-v3/include/debug
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
..
array libstdc++: Restore __gnu_debug::array [PR100682] 2021-07-22 13:53:57 +01:00
assertions.h
bitset
debug.h
deque libstdc++: [_GLIBCXX_DEBUG] Remove _Safe_container<>::_M_safe() 2021-11-14 21:55:01 +01:00
formatter.h libstdc++: [_GLIBCXX_DEBUG] Enhance rendering of assert message 2021-05-26 21:50:17 +02:00
forward_list libstdc++: [_GLIBCXX_DEBUG] Remove _Safe_container<>::_M_safe() 2021-11-14 21:55:01 +01:00
functions.h libstdc++: Add std::__conditional_t alias template 2021-10-01 20:34:49 +01:00
helper_functions.h libstdc++: Define std::__is_constant_evaluated() for internal use 2021-12-01 15:00:33 +00:00
list libstdc++: [_GLIBCXX_DEBUG] Remove _Safe_container<>::_M_safe() 2021-11-14 21:55:01 +01:00
macros.h libstdc++: [_GLIBCXX_DEBUG] Reduce performance impact on std::erase_if 2021-11-20 16:11:22 +01:00
map
map.h libstdc++: [_GLIBCXX_DEBUG] Reduce performance impact on std::erase_if 2021-11-20 16:11:22 +01:00
multimap.h libstdc++: [_GLIBCXX_DEBUG] Reduce performance impact on std::erase_if 2021-11-20 16:11:22 +01:00
multiset.h libstdc++: [_GLIBCXX_DEBUG] Reduce performance impact on std::erase_if 2021-11-20 16:11:22 +01:00
safe_base.h
safe_container.h libstdc++: [_GLIBCXX_DEBUG] Remove _Safe_container<>::_M_safe() 2021-11-14 21:55:01 +01:00
safe_iterator.h libstdc++: Overload std::__to_address for __gnu_cxx::__normal_iterator. 2021-12-15 22:28:05 +01:00
safe_iterator.tcc
safe_local_iterator.h
safe_local_iterator.tcc
safe_sequence.h
safe_sequence.tcc
safe_unordered_base.h
safe_unordered_container.h libstdc++: [_GLIBCXX_DEBUG] Implement unordered container merge 2021-11-09 21:50:17 +01:00
safe_unordered_container.tcc
set
set.h libstdc++: [_GLIBCXX_DEBUG] Reduce performance impact on std::erase_if 2021-11-20 16:11:22 +01:00
stl_iterator.h libstdc++: Missing constexpr for __gnu_debug::__valid_range etc 2021-11-01 21:01:31 +00:00
string libstdc++: [_GLIBCXX_DEBUG] Remove _Safe_container<>::_M_safe() 2021-11-14 21:55:01 +01:00
unordered_map libstdc++: [_GLIBCXX_DEBUG] Reduce performance impact on std::erase_if 2021-11-20 16:11:22 +01:00
unordered_set libstdc++: [_GLIBCXX_DEBUG] Reduce performance impact on std::erase_if 2021-11-20 16:11:22 +01:00
vector libstdc++: [_GLIBCXX_DEBUG] Remove _Safe_container<>::_M_safe() 2021-11-14 21:55:01 +01:00