diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2023-09-19 17:46:32 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2023-11-16 08:10:19 +0000 |
commit | 7ffa63df8f5281bcd81bbb9842b698bc91fbb4fd (patch) | |
tree | 1828257c5a386dfd1c9b81d68a5f36322c87820f /libstdc++-v3/include/std | |
parent | f4ab68469ccffa83f23c321e8cb675b1eaf35f0c (diff) | |
download | gcc-7ffa63df8f5281bcd81bbb9842b698bc91fbb4fd.zip gcc-7ffa63df8f5281bcd81bbb9842b698bc91fbb4fd.tar.gz gcc-7ffa63df8f5281bcd81bbb9842b698bc91fbb4fd.tar.bz2 |
libstdc++: Only declare feature test macros in standard headers
This change moves the definitions of feature test macros (or strictly
speaking, the requests for <bits/version.h> to define them) so that only
standard headers define them. For example, <bits/shared_ptr.h> will no
longer define macros related to std::shared_ptr, only <memory> and
<version> will define them. This means that __cpp_lib_shared_ptr_arrays
will not be defined by <future> or by other headers that include
<bits/shared_ptr.h>. It will only be defined when <memory> has been
included. This will discourage users from relying on transitive
includes.
As a result, internal headers that need to query the macros should use
the internal macros like __glibcxx_shared_ptr_arrays instead of
__cpp_lib_shared_ptr_arrays, as those internal macros are defined by the
internal headers after icluding <bits/version.h>. There are some
exceptions to this rule, because __cpp_lib_is_constant_evaluated is
defined by bits/c++config.h and so is available everywhere, and
__cpp_lib_three_way_comparison is defined by <compare> which several
headers are explicitly specified to include, so its macro is guaranteed
to be usable too.
N.B. not many internal headers actually need an explicit include of
<bits/version.h>, because most of them include <type_traits> and so get
all the __glibcxx_foo internal macros from there.
libstdc++-v3/ChangeLog:
* include/bits/algorithmfwd.h: Do not define standard feature
test macro here.
* include/bits/align.h: Likewise. Test internal macros instead
of standard macros.
* include/bits/alloc_traits.h: Likewise.
* include/bits/allocator.h: Likewise.
* include/bits/atomic_base.h: Likewise.
* include/bits/atomic_timed_wait.h: Likewise.
* include/bits/atomic_wait.h: Likewise.
* include/bits/basic_string.h: Likewise.
* include/bits/basic_string.tcc: Likewise.
* include/bits/char_traits.h: Likewise.
* include/bits/chrono.h: Likewise.
* include/bits/cow_string.h: Likewise.
* include/bits/forward_list.h: Likewise.
* include/bits/hashtable.h: Likewise.
* include/bits/ios_base.h: Likewise.
* include/bits/memory_resource.h: Likewise.
* include/bits/move.h: Likewise.
* include/bits/move_only_function.h: Likewise.
* include/bits/node_handle.h: Likewise.
* include/bits/ptr_traits.h: Likewise.
* include/bits/range_access.h: Likewise.
* include/bits/ranges_algo.h: Likewise.
* include/bits/ranges_cmp.h: Likewise.
* include/bits/ranges_util.h: Likewise.
* include/bits/semaphore_base.h: Likewise.
* include/bits/shared_ptr.h: Likewise.
* include/bits/shared_ptr_atomic.h: Likewise.
* include/bits/shared_ptr_base.h: Likewise.
* include/bits/stl_algo.h: Likewise.
* include/bits/stl_algobase.h: Likewise.
* include/bits/stl_function.h: Likewise.
* include/bits/stl_iterator.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_pair.h: Likewise.
* include/bits/stl_queue.h: Likewise.
* include/bits/stl_stack.h: Likewise.
* include/bits/stl_tree.h: Likewise.
* include/bits/stl_uninitialized.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/unique_ptr.h: Likewise.
* include/bits/unordered_map.h: Likewise.
* include/bits/uses_allocator_args.h: Likewise.
* include/bits/utility.h: Likewise.
* include/bits/erase_if.h: Add comment.
* include/std/algorithm: Define standard feature test macros
here.
* include/std/atomic: Likewise.
* include/std/array: Likewise.
* include/std/chrono: Likewise.
* include/std/condition_variable: Likewise.
* include/std/deque: Likewise.
* include/std/format: Likewise.
* include/std/functional: Likewise.
* include/std/forward_list: Likewise.
* include/std/ios: Likewise.
* include/std/iterator: Likewise.
* include/std/list: Likewise.
* include/std/map: Likewise.
* include/std/memory: Likewise.
* include/std/numeric: Likewise.
* include/std/queue: Likewise.
* include/std/ranges: Likewise.
* include/std/regex: Likewise.
* include/std/set: Likewise.
* include/std/stack: Likewise.
* include/std/stop_token: Likewise.
* include/std/string: Likewise.
* include/std/string_view:
* include/std/tuple: Likewise.
* include/std/unordered_map:
* include/std/unordered_set:
* include/std/utility: Likewise.
* include/std/vector: Likewise.
* include/std/scoped_allocator: Query internal macros instead of
standard macros.
Diffstat (limited to 'libstdc++-v3/include/std')
29 files changed, 132 insertions, 25 deletions
diff --git a/libstdc++-v3/include/std/algorithm b/libstdc++-v3/include/std/algorithm index c6ebb86..d7fab41 100644 --- a/libstdc++-v3/include/std/algorithm +++ b/libstdc++-v3/include/std/algorithm @@ -63,7 +63,15 @@ # include <bits/ranges_algo.h> #endif +#define __glibcxx_want_clamp +#define __glibcxx_want_constexpr_algorithms #define __glibcxx_want_parallel_algorithm +#define __glibcxx_want_ranges_contains +#define __glibcxx_want_ranges_find_last +#define __glibcxx_want_ranges_fold +#define __glibcxx_want_robust_nonmodifying_seq_ops +#define __glibcxx_want_sample +#define __glibcxx_want_shift #include <bits/version.h> #if __cpp_lib_parallel_algorithm // C++ >= 17 && HOSTED diff --git a/libstdc++-v3/include/std/array b/libstdc++-v3/include/std/array index c4d534c..d34ec5c 100644 --- a/libstdc++-v3/include/std/array +++ b/libstdc++-v3/include/std/array @@ -45,6 +45,8 @@ #include <bits/utility.h> // std::index_sequence, std::tuple_size #include <debug/assertions.h> +#define __glibcxx_want_array_constexpr +#define __glibcxx_want_nonmember_container_access #define __glibcxx_want_to_array #include <bits/version.h> diff --git a/libstdc++-v3/include/std/atomic b/libstdc++-v3/include/std/atomic index 713ee2c..09bbe2a 100644 --- a/libstdc++-v3/include/std/atomic +++ b/libstdc++-v3/include/std/atomic @@ -39,9 +39,12 @@ #else #define __glibcxx_want_atomic_is_always_lock_free +#define __glibcxx_want_atomic_flag_test #define __glibcxx_want_atomic_float #define __glibcxx_want_atomic_ref #define __glibcxx_want_atomic_lock_free_type_aliases +#define __glibcxx_want_atomic_value_initialization +#define __glibcxx_want_atomic_wait #include <bits/version.h> #include <bits/atomic_base.h> diff --git a/libstdc++-v3/include/std/chrono b/libstdc++-v3/include/std/chrono index 10bdd1c..e4ba6ea 100644 --- a/libstdc++-v3/include/std/chrono +++ b/libstdc++-v3/include/std/chrono @@ -50,6 +50,10 @@ # include <bits/unique_ptr.h> #endif +#define __glibcxx_want_chrono +#define __glibcxx_want_chrono_udls +#include <bits/version.h> + namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/std/condition_variable b/libstdc++-v3/include/std/condition_variable index 5ed4d3b..a4c4f84 100644 --- a/libstdc++-v3/include/std/condition_variable +++ b/libstdc++-v3/include/std/condition_variable @@ -363,7 +363,7 @@ _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2) const chrono::duration<_Rep, _Period>& __rtime, _Predicate __p) { return wait_until(__lock, __clock_t::now() + __rtime, std::move(__p)); } -#ifdef __cpp_lib_jthread +#ifdef __glibcxx_jthread template <class _Lock, class _Predicate> bool wait(_Lock& __lock, stop_token __stoken, diff --git a/libstdc++-v3/include/std/deque b/libstdc++-v3/include/std/deque index c0b05dd..e48dc996 100644 --- a/libstdc++-v3/include/std/deque +++ b/libstdc++-v3/include/std/deque @@ -69,6 +69,7 @@ #include <bits/deque.tcc> #define __glibcxx_want_erase_if +#define __glibcxx_want_nonmember_container_access #include <bits/version.h> #ifdef _GLIBCXX_DEBUG diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format index 1e71725..8ec1c8a 100644 --- a/libstdc++-v3/include/std/format +++ b/libstdc++-v3/include/std/format @@ -34,6 +34,7 @@ #include <bits/requires_hosted.h> // for std::string #define __glibcxx_want_format +#define __glibcxx_want_format_ranges #include <bits/version.h> #ifdef __cpp_lib_format // C++ >= 20 && HOSTED @@ -2041,7 +2042,7 @@ namespace __format }; #endif -#if defined __cpp_lib_to_chars +#if defined __glibcxx_to_chars /// Format a floating-point value. template<__format::__formattable_float _Tp, __format::__char _CharT> struct formatter<_Tp, _CharT> @@ -3246,7 +3247,7 @@ namespace __format return std::forward<_Visitor>(__vis)(_M_val._M_ll); case _Arg_ull: return std::forward<_Visitor>(__vis)(_M_val._M_ull); -#if __cpp_lib_to_chars // FIXME: need to be able to format these types! +#if __glibcxx_to_chars // FIXME: need to be able to format these types! case _Arg_flt: return std::forward<_Visitor>(__vis)(_M_val._M_flt); case _Arg_dbl: diff --git a/libstdc++-v3/include/std/forward_list b/libstdc++-v3/include/std/forward_list index bd642a1..0870bc2 100644 --- a/libstdc++-v3/include/std/forward_list +++ b/libstdc++-v3/include/std/forward_list @@ -46,6 +46,9 @@ #endif #define __glibcxx_want_erase_if +#define __glibcxx_want_incomplete_container_elements +#define __glibcxx_want_list_remove_return_type +#define __glibcxx_want_nonmember_container_access #include <bits/version.h> #if __cplusplus >= 201703L @@ -67,7 +70,7 @@ namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Tp, typename _Alloc, typename _Predicate> - inline typename forward_list<_Tp, _Alloc>::size_type + inline typename forward_list<_Tp, _Alloc>::size_type erase_if(forward_list<_Tp, _Alloc>& __cont, _Predicate __pred) { return __cont.remove_if(__pred); } diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional index 9551e38..729d11c 100644 --- a/libstdc++-v3/include/std/functional +++ b/libstdc++-v3/include/std/functional @@ -48,14 +48,6 @@ #include <bits/c++config.h> #include <bits/stl_function.h> // std::equal_to, std::unary_function etc. -#define __glibcxx_want_invoke -#define __glibcxx_want_constexpr_functional -#define __glibcxx_want_invoke_r -#define __glibcxx_want_bind_front -#define __glibcxx_want_not_fn -#define __glibcxx_want_boyer_moore_searcher -#include <bits/version.h> - #if __cplusplus >= 201103L #include <tuple> @@ -82,6 +74,17 @@ # include <bits/move_only_function.h> #endif +#define __glibcxx_want_boyer_moore_searcher +#define __glibcxx_want_bind_front +#define __glibcxx_want_constexpr_functional +#define __glibcxx_want_invoke +#define __glibcxx_want_invoke_r +#define __glibcxx_want_move_only_function +#define __glibcxx_want_not_fn +#define __glibcxx_want_ranges +#define __glibcxx_want_transparent_operators +#include <bits/version.h> + #endif // C++11 namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/ios b/libstdc++-v3/include/std/ios index 80be29f..3f4ad1c 100644 --- a/libstdc++-v3/include/std/ios +++ b/libstdc++-v3/include/std/ios @@ -45,4 +45,7 @@ #include <streambuf> #include <bits/basic_ios.h> +#define __glibcxx_want_ios_noreplace +#include <bits/version.h> + #endif /* _GLIBCXX_IOS */ diff --git a/libstdc++-v3/include/std/iterator b/libstdc++-v3/include/std/iterator index 8c8670f..7461efb 100644 --- a/libstdc++-v3/include/std/iterator +++ b/libstdc++-v3/include/std/iterator @@ -67,7 +67,14 @@ #endif #include <bits/range_access.h> +#define __glibcxx_want_array_constexpr +#define __glibcxx_want_constexpr_iterator +#define __glibcxx_want_make_reverse_iterator +#define __glibcxx_want_move_iterator_concept +#define __glibcxx_want_nonmember_container_access #define __glibcxx_want_null_iterators +#define __glibcxx_want_ranges +#define __glibcxx_want_ssize #include <bits/version.h> #if __cplusplus >= 202002L diff --git a/libstdc++-v3/include/std/list b/libstdc++-v3/include/std/list index 9841591..b5185a9 100644 --- a/libstdc++-v3/include/std/list +++ b/libstdc++-v3/include/std/list @@ -70,6 +70,9 @@ #endif #define __glibcxx_want_erase_if +#define __glibcxx_want_incomplete_container_elements +#define __glibcxx_want_list_remove_return_type +#define __glibcxx_want_nonmember_container_access #include <bits/version.h> #if __cplusplus >= 201703L diff --git a/libstdc++-v3/include/std/map b/libstdc++-v3/include/std/map index a0f3fce..008d8d3 100644 --- a/libstdc++-v3/include/std/map +++ b/libstdc++-v3/include/std/map @@ -69,6 +69,13 @@ # include <debug/map> #endif +#define __glibcxx_want_erase_if +#define __glibcxx_want_generic_associative_lookup +#define __glibcxx_want_map_try_emplace +#define __glibcxx_want_node_extract +#define __glibcxx_want_nonmember_container_access +#include <bits/version.h> + #if __cplusplus >= 201703L #include <bits/memory_resource.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/memory b/libstdc++-v3/include/std/memory index 3cce72c..ac83761 100644 --- a/libstdc++-v3/include/std/memory +++ b/libstdc++-v3/include/std/memory @@ -91,8 +91,22 @@ # include <bits/uses_allocator_args.h> #endif +#define __glibcxx_want_allocator_traits_is_always_equal +#define __glibcxx_want_assume_aligned +#define __glibcxx_want_atomic_shared_ptr #define __glibcxx_want_atomic_value_initialization +#define __glibcxx_want_constexpr_dynamic_alloc +#define __glibcxx_want_constexpr_memory +#define __glibcxx_want_enable_shared_from_this +#define __glibcxx_want_make_unique #define __glibcxx_want_parallel_algorithm +#define __glibcxx_want_ranges +#define __glibcxx_want_raw_memory_algorithms +#define __glibcxx_want_shared_ptr_arrays +#define __glibcxx_want_shared_ptr_weak_type +#define __glibcxx_want_smart_ptr_for_overwrite +#define __glibcxx_want_to_address +#define __glibcxx_want_transparent_operators #include <bits/version.h> #if __cplusplus >= 201103L && __cplusplus <= 202002L && _GLIBCXX_HOSTED diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric index 8c8d200..559e624 100644 --- a/libstdc++-v3/include/std/numeric +++ b/libstdc++-v3/include/std/numeric @@ -85,6 +85,7 @@ #define __glibcxx_want_interpolate #define __glibcxx_want_lcm #define __glibcxx_want_parallel_algorithm +#define __glibcxx_want_ranges_iota #include <bits/version.h> /** diff --git a/libstdc++-v3/include/std/queue b/libstdc++-v3/include/std/queue index ec620ac..8980ba8 100644 --- a/libstdc++-v3/include/std/queue +++ b/libstdc++-v3/include/std/queue @@ -65,4 +65,7 @@ #include <bits/stl_function.h> #include <bits/stl_queue.h> +#define __glibcxx_want_adaptor_iterator_pair_constructor +#include <bits/version.h> + #endif /* _GLIBCXX_QUEUE */ diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges index 41f95dc..26d6c01 100644 --- a/libstdc++-v3/include/std/ranges +++ b/libstdc++-v3/include/std/ranges @@ -51,6 +51,7 @@ #include <bits/ranges_util.h> #include <bits/refwrap.h> +#define __glibcxx_want_ranges #define __glibcxx_want_ranges_as_const #define __glibcxx_want_ranges_as_rvalue #define __glibcxx_want_ranges_cartesian_product diff --git a/libstdc++-v3/include/std/regex b/libstdc++-v3/include/std/regex index 7f63d86..ff33205 100644 --- a/libstdc++-v3/include/std/regex +++ b/libstdc++-v3/include/std/regex @@ -68,6 +68,9 @@ #include <bits/regex.h> #include <bits/regex_executor.h> +#define __glibcxx_want_nonmember_container_access +#include <bits/version.h> + #if __cplusplus >= 201703L && _GLIBCXX_USE_CXX11_ABI #include <bits/memory_resource.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/scoped_allocator b/libstdc++-v3/include/std/scoped_allocator index 8af432a..2f10479 100644 --- a/libstdc++-v3/include/std/scoped_allocator +++ b/libstdc++-v3/include/std/scoped_allocator @@ -196,7 +196,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using __outermost_alloc_traits = allocator_traits<typename __outermost_type<_Alloc>::type>; -#if ! __cpp_lib_make_obj_using_allocator +#if ! __glibcxx_make_obj_using_allocator template<typename _Tp, typename... _Args> void _M_construct(__uses_alloc0, _Tp* __p, _Args&&... __args) @@ -373,7 +373,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION size_type max_size() const { return __traits::max_size(outer_allocator()); } -#if ! __cpp_lib_make_obj_using_allocator +#if ! __glibcxx_make_obj_using_allocator template<typename _Tp, typename... _Args> typename __not_pair<_Tp>::type construct(_Tp* __p, _Args&&... __args) @@ -473,7 +473,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION const scoped_allocator_adaptor<_OutA2, _InA...>& __b) noexcept; private: -#if ! __cpp_lib_make_obj_using_allocator +#if ! __glibcxx_make_obj_using_allocator template<typename _Ind, typename... _Args> tuple<_Args&&...> _M_construct_p(__uses_alloc0, _Ind, tuple<_Args...>& __t) diff --git a/libstdc++-v3/include/std/set b/libstdc++-v3/include/std/set index 5641b79..55cabda 100644 --- a/libstdc++-v3/include/std/set +++ b/libstdc++-v3/include/std/set @@ -69,6 +69,12 @@ # include <debug/set> #endif +#define __glibcxx_want_erase_if +#define __glibcxx_want_generic_associative_lookup +#define __glibcxx_want_node_extract +#define __glibcxx_want_nonmember_container_access +#include <bits/version.h> + #if __cplusplus >= 201703L #include <bits/memory_resource.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/stack b/libstdc++-v3/include/std/stack index 4cc89f0..dda18b6 100644 --- a/libstdc++-v3/include/std/stack +++ b/libstdc++-v3/include/std/stack @@ -62,4 +62,7 @@ #include <deque> #include <bits/stl_stack.h> +#define __glibcxx_want_adaptor_iterator_pair_constructor +#include <bits/version.h> + #endif /* _GLIBCXX_STACK */ diff --git a/libstdc++-v3/include/std/stop_token b/libstdc++-v3/include/std/stop_token index 3be0f5a..fce1cf5 100644 --- a/libstdc++-v3/include/std/stop_token +++ b/libstdc++-v3/include/std/stop_token @@ -109,7 +109,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION this_thread::yield(); } -#ifndef __cpp_lib_semaphore +#ifndef __glibcxx_semaphore struct binary_semaphore { explicit binary_semaphore(int __d) : _M_counter(__d > 0) { } diff --git a/libstdc++-v3/include/std/string b/libstdc++-v3/include/std/string index 832e9d8..78e8bac 100644 --- a/libstdc++-v3/include/std/string +++ b/libstdc++-v3/include/std/string @@ -54,7 +54,13 @@ #include <bits/basic_string.h> #include <bits/basic_string.tcc> +#define __glibcxx_want_constexpr_char_traits +#define __glibcxx_want_constexpr_string #define __glibcxx_want_erase_if +#define __glibcxx_want_nonmember_container_access +#define __glibcxx_want_string_resize_and_overwrite +#define __glibcxx_want_string_udls +#define __glibcxx_want_to_string #include <bits/version.h> #if __cplusplus >= 201703L && _GLIBCXX_USE_CXX11_ABI diff --git a/libstdc++-v3/include/std/string_view b/libstdc++-v3/include/std/string_view index cf288ed3a..cbb6bb0 100644 --- a/libstdc++-v3/include/std/string_view +++ b/libstdc++-v3/include/std/string_view @@ -35,6 +35,7 @@ #pragma GCC system_header +#define __glibcxx_want_constexpr_char_traits #define __glibcxx_want_string_view #define __glibcxx_want_constexpr_string_view #define __glibcxx_want_starts_ends_with diff --git a/libstdc++-v3/include/std/tuple b/libstdc++-v3/include/std/tuple index 797d8c0..f2e008b 100644 --- a/libstdc++-v3/include/std/tuple +++ b/libstdc++-v3/include/std/tuple @@ -45,9 +45,11 @@ #endif #define __glibcxx_want_constexpr_tuple +#define __glibcxx_want_tuple_element_t #define __glibcxx_want_tuples_by_type #define __glibcxx_want_apply #define __glibcxx_want_make_from_tuple +#define __glibcxx_want_ranges_zip #include <bits/version.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/unordered_map b/libstdc++-v3/include/std/unordered_map index b72845b..ec92492 100644 --- a/libstdc++-v3/include/std/unordered_map +++ b/libstdc++-v3/include/std/unordered_map @@ -46,6 +46,13 @@ # include <debug/unordered_map> #endif +#define __glibcxx_want_erase_if +#define __glibcxx_want_generic_unordered_lookup +#define __glibcxx_want_node_extract +#define __glibcxx_want_nonmember_container_access +#define __glibcxx_want_unordered_map_try_emplace +#include <bits/version.h> + #if __cplusplus >= 201703L #include <bits/memory_resource.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/unordered_set b/libstdc++-v3/include/std/unordered_set index 22a1c7c..b77b622 100644 --- a/libstdc++-v3/include/std/unordered_set +++ b/libstdc++-v3/include/std/unordered_set @@ -46,6 +46,12 @@ # include <debug/unordered_set> #endif +#define __glibcxx_want_erase_if +#define __glibcxx_want_generic_unordered_lookup +#define __glibcxx_want_node_extract +#define __glibcxx_want_nonmember_container_access +#include <bits/version.h> + #if __cplusplus >= 201703L #include <bits/memory_resource.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/utility b/libstdc++-v3/include/std/utility index bdaf5d4..18bef7a 100644 --- a/libstdc++-v3/include/std/utility +++ b/libstdc++-v3/include/std/utility @@ -68,15 +68,6 @@ #include <bits/stl_relops.h> #include <bits/stl_pair.h> -#define __glibcxx_want_as_const -#define __glibcxx_want_constexpr_algorithms -#define __glibcxx_want_exchange_function -#define __glibcxx_want_forward_like -#define __glibcxx_want_integer_comparison_functions -#define __glibcxx_want_to_underlying -#define __glibcxx_want_unreachable -#include <bits/version.h> - #if __cplusplus >= 201103L #include <initializer_list> @@ -88,6 +79,21 @@ #include <ext/numeric_traits.h> // __is_standard_integer, __int_traits #endif +#define __glibcxx_want_addressof_constexpr +#define __glibcxx_want_as_const +#define __glibcxx_want_constexpr_algorithms +#define __glibcxx_want_constexpr_utility +#define __glibcxx_want_exchange_function +#define __glibcxx_want_forward_like +#define __glibcxx_want_integer_comparison_functions +#define __glibcxx_want_integer_sequence +#define __glibcxx_want_ranges_zip +#define __glibcxx_want_to_underlying +#define __glibcxx_want_tuple_element_t +#define __glibcxx_want_tuples_by_type +#define __glibcxx_want_unreachable +#include <bits/version.h> + namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/std/vector b/libstdc++-v3/include/std/vector index ecd9f71..5e1d54a 100644 --- a/libstdc++-v3/include/std/vector +++ b/libstdc++-v3/include/std/vector @@ -76,7 +76,10 @@ # include <debug/vector> #endif +#define __glibcxx_want_constexpr_vector #define __glibcxx_want_erase_if +#define __glibcxx_want_incomplete_container_elements +#define __glibcxx_want_nonmember_container_access #include <bits/version.h> #if __cplusplus >= 201703L |