gcc/libstdc++-v3/include/bits
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
..
algorithmfwd.h
align.h
alloc_traits.h libstdc++: Implement constexpr std::vector for C++20 2021-11-12 00:42:39 +00:00
allocated_ptr.h libstdc++: Suppress Doxygen docs for more implementation details 2021-10-21 22:23:00 +01:00
allocator.h libstdc++: Define std::__is_constant_evaluated() for internal use 2021-12-01 15:00:33 +00:00
atomic_base.h libstdc++: Make atomic<T*>::wait() const [PR102994] 2021-12-09 17:57:03 -08:00
atomic_futex.h libstdc++: Move C++14 <chrono> components to new <bits/chrono.h> header 2021-10-07 21:12:32 +01:00
atomic_timed_wait.h libstdc++: Guard mutex and condvar with gthreads macro [PR103638] 2021-12-10 14:05:46 +00:00
atomic_wait.h libstdc++: Avoid use of hardware interference non-constant [PR102377] 2021-10-07 18:35:16 +01:00
basic_ios.h
basic_ios.tcc
basic_string.h libstdc++: check length in string append [PR103534] 2021-12-10 23:58:13 -05:00
basic_string.tcc libstdc++: Define std::__is_constant_evaluated() for internal use 2021-12-01 15:00:33 +00:00
boost_concept_check.h libstdc++: Fix _ForwardIteratorConcept for __gnu_debug::vector<bool> 2021-10-01 15:04:02 +01:00
c++0x_warning.h
c++config libstdc++: Skip atomic instructions in shared_ptr when both counts are 1 2021-12-08 11:39:34 +00:00
char_traits.h libstdc++: Fix diagnostic pragma push that should be pop 2021-12-10 09:06:37 +00:00
charconv.h
chrono.h libstdc++: Move C++14 <chrono> components to new <bits/chrono.h> header 2021-10-07 21:12:32 +01:00
codecvt.h
concept_check.h
cow_string.h libstdc++: Do not leak empty COW strings 2021-12-09 22:51:06 +00:00
cpp_type_traits.h
deque.tcc
enable_special_members.h libstdc++: Suppress Doxygen docs for more implementation details 2021-10-21 22:23:00 +01:00
erase_if.h libstdc++: [_GLIBCXX_DEBUG] Reduce performance impact on std::erase_if 2021-11-20 16:11:22 +01:00
forward_list.h libstdc++: Implement P1518R2 for container deduction guides 2021-10-04 15:23:28 +01:00
forward_list.tcc
fs_dir.h
fs_fwd.h libstdc++: Move C++14 <chrono> components to new <bits/chrono.h> header 2021-10-07 21:12:32 +01:00
fs_ops.h
fs_path.h libstdc++: Fix error in filesystem::path with Clang 2021-10-16 00:44:28 +01:00
fstream.tcc
functexcept.h
functional_hash.h
gslice.h
gslice_array.h
hashtable.h libstdc++: Unordered containers merge re-use hash code 2021-11-15 18:52:07 +01:00
hashtable_policy.h libstdc++: Unordered containers merge re-use hash code 2021-11-15 18:52:07 +01:00
indirect_array.h
invoke.h
ios_base.h libstdc++: Implement std::ios_base::noreplace for C++23 [PR59769] 2021-12-09 22:59:48 +00:00
istream.tcc
iterator_concepts.h
list.tcc libstdc++: Fix regression in std::list::sort [PR66742] 2021-11-03 15:15:27 +00:00
locale_classes.h
locale_classes.tcc
locale_conv.h libstdc++: Define std::wstring_convert unconditionally [PR 98725] 2021-10-09 00:57:49 +01:00
locale_facets.h
locale_facets.tcc
locale_facets_nonio.h libstdc++: Add std::time_get %r support [PR71367] 2021-12-10 17:05:04 +01:00
locale_facets_nonio.tcc libstdc++: Poor man's case insensitive comparisons in time_get [PR71557] 2021-12-15 10:25:53 +01:00
localefwd.h
mask_array.h
max_size_type.h
memoryfwd.h
mofunc_impl.h libstdc++: Add Doxygen comments to contents of <functional> 2021-10-21 22:24:53 +01:00
move.h libstdc++: Add std::__conditional_t alias template 2021-10-01 20:34:49 +01:00
move_only_function.h libstdc++: Implement std::move_only_function for C++23 (P0288R9) 2021-10-06 20:12:01 +01:00
new_allocator.h libstdc++: Fix non-reserved name in std::allocator base class [PR64135] 2021-12-09 22:50:10 +00:00
node_handle.h libstdc++: Suppress Doxygen docs for more implementation details 2021-10-21 22:23:00 +01:00
ostream.tcc
ostream_insert.h
parse_numbers.h libstdc++: Add std::__conditional_t alias template 2021-10-01 20:34:49 +01:00
postypes.h
predefined_ops.h
ptr_traits.h libstdc++: Make std::pointer_traits SFINAE-friendly [PR96416] 2021-11-25 23:12:14 +00:00
quoted_string.h
random.h
random.tcc
range_access.h libstdc++: Fix inconsistent noexcept-specific for valarray begin/end 2021-11-05 21:44:01 +00:00
ranges_algo.h
ranges_algobase.h libstdc++: Define std::__is_constant_evaluated() for internal use 2021-12-01 15:00:33 +00:00
ranges_base.h libstdc++: Make ranges::size and ranges::empty check for unbounded arrays 2021-12-13 11:15:41 +00:00
ranges_cmp.h libstdc++: Define std::__is_constant_evaluated() for internal use 2021-12-01 15:00:33 +00:00
ranges_uninitialized.h
ranges_util.h libstdc++: Implement P1739R4 changes to views::take/drop/counted 2021-10-21 11:55:16 -04:00
refwrap.h libstdc++: Reduce header dependencies for C++20 std::erase [PR92546] 2021-10-01 20:37:02 +01:00
regex.h libstdc++: Fix std::regex_replace for strings with embedded null [PR103664] 2021-12-13 11:11:30 +00:00
regex.tcc libstdc++: Fix std::regex_replace for strings with embedded null [PR103664] 2021-12-13 11:11:30 +00:00
regex_automaton.h
regex_automaton.tcc
regex_compiler.h libstdc++: Fix handling of invalid ranges in std::regex [PR102447] 2021-12-14 21:45:46 +00:00
regex_compiler.tcc libstdc++: Fix handling of invalid ranges in std::regex [PR102447] 2021-12-14 21:45:46 +00:00
regex_constants.h libstdc++: Simplify definition of std::regex_constants variables 2021-12-14 21:45:45 +00:00
regex_error.h libstdc++: Simplify definition of std::regex_constants variables 2021-12-14 21:45:45 +00:00
regex_executor.h libstdc++: Implement std::regex_constants::multiline (LWG 2503) 2021-09-29 13:48:19 +01:00
regex_executor.tcc
regex_scanner.h
regex_scanner.tcc libstdc++: Add valid range assertions to std::basic_regex [PR89927] 2021-10-11 20:34:16 +01:00
semaphore_base.h libstdc++: Add wrapper for internal uses of std::terminate 2021-10-11 20:35:51 +01:00
shared_ptr.h
shared_ptr_atomic.h
shared_ptr_base.h libstdc++: Fix undefined shift when _Atomic_word is 64-bit 2021-12-08 23:41:03 +00:00
slice_array.h
specfun.h
sstream.tcc
std_abs.h
std_function.h libstdc++: Add noexcept to some std::function internals 2021-10-05 09:35:47 +01:00
std_mutex.h libstdc++: Allow std::condition_variable waits to be cancelled [PR103382] 2021-12-09 22:58:19 +00:00
std_thread.h libstdc++: Add wrapper for internal uses of std::terminate 2021-10-11 20:35:51 +01:00
stl_algo.h libstdc++: Reduce header dependencies for C++20 std::erase [PR92546] 2021-10-01 20:37:02 +01:00
stl_algobase.h libstdc++: Define std::__is_constant_evaluated() for internal use 2021-12-01 15:00:33 +00:00
stl_bvector.h libstdc++: Define std::__is_constant_evaluated() for internal use 2021-12-01 15:00:33 +00:00
stl_construct.h libstdc++: Define std::__is_constant_evaluated() for internal use 2021-12-01 15:00:33 +00:00
stl_deque.h libstdc++: Implement P1518R2 for container deduction guides 2021-10-04 15:23:28 +01:00
stl_function.h libstdc++: Define std::__is_constant_evaluated() for internal use 2021-12-01 15:00:33 +00:00
stl_heap.h
stl_iterator.h libstdc++: Overload std::__to_address for __gnu_cxx::__normal_iterator. 2021-12-15 22:28:05 +01:00
stl_iterator_base_funcs.h libstdc++: Improve diagnostics for misuses of output iterators 2021-10-12 16:05:15 +01:00
stl_iterator_base_types.h
stl_list.h libstdc++: Fix regression in std::list::sort [PR66742] 2021-11-03 15:15:27 +00:00
stl_map.h libstdc++: Avoid unnecessary allocations in std::map insertions [PR92300] 2021-12-09 22:56:57 +00:00
stl_multimap.h libstdc++: Implement P1518R2 for container deduction guides 2021-10-04 15:23:28 +01:00
stl_multiset.h libstdc++: Implement P1518R2 for container deduction guides 2021-10-04 15:23:28 +01:00
stl_numeric.h
stl_pair.h libstdc++: Avoid unnecessary allocations in std::map insertions [PR92300] 2021-12-09 22:56:57 +00:00
stl_queue.h libstdc++: Update __cpp_lib_adaptor_iterator_pair_constructor value 2021-10-05 09:35:46 +01:00
stl_raw_storage_iter.h
stl_relops.h
stl_set.h libstdc++: Implement P1518R2 for container deduction guides 2021-10-04 15:23:28 +01:00
stl_stack.h libstdc++: Fix std::stack deduction guide 2021-10-19 15:01:16 +01:00
stl_tempbuf.h
stl_tree.h libstdc++: Simplify emplace member functions in _Rb_tree 2021-12-03 22:52:27 +00:00
stl_uninitialized.h libstdc++: Fix trivial relocation for constexpr std::vector 2021-11-26 22:28:48 +00:00
stl_vector.h libstdc++: Define std::__is_constant_evaluated() for internal use 2021-12-01 15:00:33 +00:00
stream_iterator.h libstdc++: Add noexcept to istream_iterator and ostream_iterator 2021-10-01 15:04:02 +01:00
streambuf.tcc
streambuf_iterator.h
string_view.tcc
stringfwd.h libstdc++: Always define typedefs and hash functions for wide strings [PR 98725] 2021-10-09 00:57:49 +01:00
this_thread_sleep.h libstdc++: Move C++14 <chrono> components to new <bits/chrono.h> header 2021-10-07 21:12:32 +01:00
uniform_int_dist.h
unique_lock.h libstdc++: Move C++14 <chrono> components to new <bits/chrono.h> header 2021-10-07 21:12:32 +01:00
unique_ptr.h libstdc++: Add std::__conditional_t alias template 2021-10-01 20:34:49 +01:00
unordered_map.h
unordered_set.h
uses_allocator.h libstdc++: Suppress Doxygen docs for more implementation details 2021-10-21 22:23:00 +01:00
uses_allocator_args.h libstdc++: Avoid unnecessary allocations in std::map insertions [PR92300] 2021-12-09 22:56:57 +00:00
utility.h libstdc++: Consolidate duplicate metaprogramming utilities 2021-11-04 18:14:50 +00:00
valarray_after.h
valarray_array.h
valarray_array.tcc
valarray_before.h
vector.tcc libstdc++: Implement constexpr std::vector for C++20 2021-11-12 00:42:39 +00:00