aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/std
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2022-01-21 14:22:23 +0000
committerJonathan Wakely <jwakely@redhat.com>2022-01-21 16:07:34 +0000
commitb8806796ec64585de39ca6ee3b7b30cc08f27d62 (patch)
tree03426541158133438b4ce614c10a3409f3a30145 /libstdc++-v3/include/std
parent2da1ef06ff4bee961f51321dee9d0866c7ebb1cc (diff)
downloadgcc-b8806796ec64585de39ca6ee3b7b30cc08f27d62.zip
gcc-b8806796ec64585de39ca6ee3b7b30cc08f27d62.tar.gz
gcc-b8806796ec64585de39ca6ee3b7b30cc08f27d62.tar.bz2
libstdc++: Ensure all feature test macros have type long [PR87193]
This defines all the __cpp_lib_xxx macros as type long, as required by the standard. We had an inconsistent mix of int and long, sometimes even for the same macro name. The __cpp_lib_experimental_xxx macros are left as type int, because that's what it says in the relevant TS specs. libstdc++-v3/ChangeLog: PR libstdc++/87193 PR libstdc++/104019 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal): Define as type long. * include/bits/allocator.h (__cpp_lib_incomplete_container_elements): Likewise. * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise. * include/bits/chrono.h (__cpp_lib_chrono): Likewise. (__cpp_lib_chrono_udls): Likewise. * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise. * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise. * include/bits/range_access.h (__cpp_lib_nonmember_container_access): Likewise. * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this): Likewise. * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise. (__cpp_lib_sample): Likewise. * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops): Likewise. * include/bits/stl_function.h (__cpp_lib_transparent_operators): Likewise. * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator): Likewise. * include/bits/stl_map.h (__cpp_lib_map_try_emplace): Likewise. * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup): Likewise. * include/bits/unique_ptr.h (__cpp_lib_make_unique): Likewise. * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace): Likewise. * include/c_global/cmath (__cpp_lib_hypot): Likewise. * include/c_global/cstddef (__cpp_lib_byte): Likewise. * include/std/atomic (__cpp_lib_atomic_is_always_lock_free): Likewise. * include/std/complex (__cpp_lib_complex_udls): Likewise. * include/std/filesystem (__cpp_lib_filesystem): Likewise. * include/std/functional (__cpp_lib_not_fn): Likewise. (__cpp_lib_boyer_moore_searcher): Likewise. * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise. * include/std/mutex (__cpp_lib_scoped_lock): Likewise. * include/std/numeric (__cpp_lib_gcd_lcm): Likewise. (__cpp_lib_gcd, __cpp_lib_lcm): Likewise. * include/std/tuple (__cpp_lib_apply): Likewise. (__cpp_lib_make_from_tuple): Likewise. * include/std/type_traits (__cpp_lib_integral_constant_callable) (__cpp_lib_bool_constant, __cpp_lib_logical_traits) (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases) (__cpp_lib_result_of_sfinae, __cpp_lib_void_t) (__cpp_lib_is_swappable, __cpp_lib_is_invocable) (__cpp_lib_has_unique_object_representations) (__cpp_lib_is_aggregate): Likewise. * include/std/version: Likewise. * libsupc++/new (__cpp_lib_launder): Likewise.
Diffstat (limited to 'libstdc++-v3/include/std')
-rw-r--r--libstdc++-v3/include/std/atomic2
-rw-r--r--libstdc++-v3/include/std/complex2
-rw-r--r--libstdc++-v3/include/std/filesystem2
-rw-r--r--libstdc++-v3/include/std/functional4
-rw-r--r--libstdc++-v3/include/std/iomanip2
-rw-r--r--libstdc++-v3/include/std/mutex2
-rw-r--r--libstdc++-v3/include/std/numeric6
-rw-r--r--libstdc++-v3/include/std/tuple4
-rw-r--r--libstdc++-v3/include/std/type_traits22
-rw-r--r--libstdc++-v3/include/std/version100
10 files changed, 73 insertions, 73 deletions
diff --git a/libstdc++-v3/include/std/atomic b/libstdc++-v3/include/std/atomic
index 9df1770..bc57659 100644
--- a/libstdc++-v3/include/std/atomic
+++ b/libstdc++-v3/include/std/atomic
@@ -50,7 +50,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
*/
#if __cplusplus >= 201703L
-# define __cpp_lib_atomic_is_always_lock_free 201603
+# define __cpp_lib_atomic_is_always_lock_free 201603L
#endif
template<typename _Tp>
diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex
index f812cd2..8f9368f 100644
--- a/libstdc++-v3/include/std/complex
+++ b/libstdc++-v3/include/std/complex
@@ -1955,7 +1955,7 @@ inline namespace literals {
inline namespace complex_literals {
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wliteral-suffix"
-#define __cpp_lib_complex_udls 201309
+#define __cpp_lib_complex_udls 201309L
constexpr std::complex<float>
operator""if(long double __num)
diff --git a/libstdc++-v3/include/std/filesystem b/libstdc++-v3/include/std/filesystem
index 274aed6..dd112a2 100644
--- a/libstdc++-v3/include/std/filesystem
+++ b/libstdc++-v3/include/std/filesystem
@@ -46,7 +46,7 @@
#include <bits/fs_dir.h>
#include <bits/fs_ops.h>
-#define __cpp_lib_filesystem 201703
+#define __cpp_lib_filesystem 201703L
#endif // C++17
diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional
index ee2a3e8..685a3e1 100644
--- a/libstdc++-v3/include/std/functional
+++ b/libstdc++-v3/include/std/functional
@@ -1062,7 +1062,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
: true_type { };
// [func.not_fn] Function template not_fn
-#define __cpp_lib_not_fn 201603
+#define __cpp_lib_not_fn 201603L
/** Wrap a function object to create one that negates its result.
*
* The function template `std::not_fn` creates a "forwarding call wrapper",
@@ -1085,7 +1085,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
// Searchers
-#define __cpp_lib_boyer_moore_searcher 201603
+#define __cpp_lib_boyer_moore_searcher 201603L
template<typename _ForwardIterator1, typename _BinaryPredicate = equal_to<>>
class default_searcher
diff --git a/libstdc++-v3/include/std/iomanip b/libstdc++-v3/include/std/iomanip
index 295d34b..5371681 100644
--- a/libstdc++-v3/include/std/iomanip
+++ b/libstdc++-v3/include/std/iomanip
@@ -448,7 +448,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#if __cplusplus >= 201402L
-#define __cpp_lib_quoted_string_io 201304
+#define __cpp_lib_quoted_string_io 201304L
/**
* @brief Manipulator for quoted strings.
diff --git a/libstdc++-v3/include/std/mutex b/libstdc++-v3/include/std/mutex
index c89a9d6..f500818 100644
--- a/libstdc++-v3/include/std/mutex
+++ b/libstdc++-v3/include/std/mutex
@@ -682,7 +682,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
#if __cplusplus >= 201703L
-#define __cpp_lib_scoped_lock 201703
+#define __cpp_lib_scoped_lock 201703L
/** @brief A scoped lock type for multiple lockable objects.
*
* A scoped_lock controls mutex ownership within a scope, releasing
diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric
index 3777ae0..5388239 100644
--- a/libstdc++-v3/include/std/numeric
+++ b/libstdc++-v3/include/std/numeric
@@ -156,10 +156,10 @@ namespace __detail
#if __cplusplus >= 201703L
-#define __cpp_lib_gcd_lcm 201606
+#define __cpp_lib_gcd_lcm 201606L
// These were used in drafts of SD-6:
-#define __cpp_lib_gcd 201606
-#define __cpp_lib_lcm 201606
+#define __cpp_lib_gcd 201606L
+#define __cpp_lib_lcm 201606L
/// Greatest common divisor
template<typename _Mn, typename _Nn>
diff --git a/libstdc++-v3/include/std/tuple b/libstdc++-v3/include/std/tuple
index e6f26ac..6d0060a 100644
--- a/libstdc++-v3/include/std/tuple
+++ b/libstdc++-v3/include/std/tuple
@@ -1843,7 +1843,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
inline constexpr bool __unpack_std_tuple<_Trait, _Tp, const tuple<_Up...>&>
= _Trait<_Tp, const _Up&...>::value;
-# define __cpp_lib_apply 201603
+# define __cpp_lib_apply 201603L
template <typename _Fn, typename _Tuple, size_t... _Idx>
constexpr decltype(auto)
@@ -1865,7 +1865,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_Indices{});
}
-#define __cpp_lib_make_from_tuple 201606
+#define __cpp_lib_make_from_tuple 201606L
template <typename _Tp, typename _Tuple, size_t... _Idx>
constexpr _Tp
diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits
index 75f50e3..2572d8e 100644
--- a/libstdc++-v3/include/std/type_traits
+++ b/libstdc++-v3/include/std/type_traits
@@ -67,7 +67,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
constexpr operator value_type() const noexcept { return value; }
#if __cplusplus > 201103L
-#define __cpp_lib_integral_constant_callable 201304
+#define __cpp_lib_integral_constant_callable 201304L
constexpr value_type operator()() const noexcept { return value; }
#endif
@@ -91,7 +91,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/// @endcond
#if __cplusplus >= 201703L
-# define __cpp_lib_bool_constant 201505
+# define __cpp_lib_bool_constant 201505L
/// Alias template for compile-time boolean constant types.
/// @since C++17
template<bool __v>
@@ -188,7 +188,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
inline constexpr bool __and_v = __and_<_Bn...>::value;
/// @endcond
-#define __cpp_lib_logical_traits 201510
+#define __cpp_lib_logical_traits 201510L
template<typename... _Bn>
struct conjunction
@@ -548,7 +548,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
struct is_function<_Tp&&>
: public false_type { };
-#define __cpp_lib_is_null_pointer 201309
+#define __cpp_lib_is_null_pointer 201309L
template<typename>
struct __is_null_pointer_helper
@@ -1594,7 +1594,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#if __cplusplus > 201103L
-#define __cpp_lib_transformation_trait_aliases 201304
+#define __cpp_lib_transformation_trait_aliases 201304L
/// Alias template for remove_const
template<typename _Tp>
@@ -2403,7 +2403,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Sfinae-friendly result_of implementation:
-#define __cpp_lib_result_of_sfinae 201210
+#define __cpp_lib_result_of_sfinae 201210L
/// @cond undocumented
struct __invoke_memfun_ref { };
@@ -2631,7 +2631,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif // C++14
#if __cplusplus >= 201703L || !defined(__STRICT_ANSI__) // c++17 or gnu++11
-#define __cpp_lib_void_t 201411
+#define __cpp_lib_void_t 201411L
/// A metafunction that always yields void, used for detecting valid types.
template<typename...> using void_t = void;
#endif
@@ -2768,7 +2768,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/// @endcond
#if __cplusplus > 201402L || !defined(__STRICT_ANSI__) // c++1z or gnu++11
-#define __cpp_lib_is_swappable 201603
+#define __cpp_lib_is_swappable 201603L
/// Metafunctions used for detecting swappable types: p0185r1
/// is_swappable
@@ -3015,7 +3015,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/// @endcond
#if __cplusplus >= 201703L
-# define __cpp_lib_is_invocable 201703
+# define __cpp_lib_is_invocable 201703L
/// std::invoke_result
template<typename _Functor, typename... _ArgTypes>
@@ -3296,7 +3296,7 @@ template<typename _Ret, typename _Fn, typename... _Args>
/// @}
#ifdef _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP
-# define __cpp_lib_has_unique_object_representations 201606
+# define __cpp_lib_has_unique_object_representations 201606L
/// has_unique_object_representations
/// @since C++17
template<typename _Tp>
@@ -3316,7 +3316,7 @@ template<typename _Ret, typename _Fn, typename... _Args>
#endif
#ifdef _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE
-# define __cpp_lib_is_aggregate 201703
+# define __cpp_lib_is_aggregate 201703L
/// is_aggregate
/// @since C++17
template<typename _Tp>
diff --git a/libstdc++-v3/include/std/version b/libstdc++-v3/include/std/version
index 64759c9..30e04b5 100644
--- a/libstdc++-v3/include/std/version
+++ b/libstdc++-v3/include/std/version
@@ -36,7 +36,7 @@
// c++03
#if _GLIBCXX_HOSTED
-# define __cpp_lib_incomplete_container_elements 201505
+# define __cpp_lib_incomplete_container_elements 201505L
#endif
#if !defined(__STRICT_ANSI__)
@@ -46,11 +46,11 @@
#if __cplusplus >= 201103L
// c++11
-#define __cpp_lib_is_null_pointer 201309
-#define __cpp_lib_result_of_sfinae 201210
+#define __cpp_lib_is_null_pointer 201309L
+#define __cpp_lib_result_of_sfinae 201210L
#if _GLIBCXX_HOSTED
-# define __cpp_lib_allocator_traits_is_always_equal 201411
+# define __cpp_lib_allocator_traits_is_always_equal 201411L
#if __cplusplus <= 201703L // N.B. updated value in C++20
# define __cpp_lib_shared_ptr_arrays 201611L
#endif
@@ -58,10 +58,10 @@
#if !defined(__STRICT_ANSI__)
// gnu++11
-# define __cpp_lib_is_swappable 201603
-# define __cpp_lib_void_t 201411
+# define __cpp_lib_is_swappable 201603L
+# define __cpp_lib_void_t 201411L
# if _GLIBCXX_HOSTED
-# define __cpp_lib_enable_shared_from_this 201603
+# define __cpp_lib_enable_shared_from_this 201603L
# endif
#endif
@@ -73,100 +73,100 @@
#if __cpp_impl_coroutine
# define __cpp_lib_coroutine 201902L
#endif
-#define __cpp_lib_integral_constant_callable 201304
+#define __cpp_lib_integral_constant_callable 201304L
#define __cpp_lib_is_final 201402L
-#define __cpp_lib_transformation_trait_aliases 201304
+#define __cpp_lib_transformation_trait_aliases 201304L
#if _GLIBCXX_HOSTED
-# define __cpp_lib_chrono_udls 201304
-# define __cpp_lib_complex_udls 201309
-# define __cpp_lib_exchange_function 201304
-# define __cpp_lib_generic_associative_lookup 201304
-# define __cpp_lib_integer_sequence 201304
-# define __cpp_lib_make_reverse_iterator 201402
-# define __cpp_lib_make_unique 201304
+# define __cpp_lib_chrono_udls 201304L
+# define __cpp_lib_complex_udls 201309L
+# define __cpp_lib_exchange_function 201304L
+# define __cpp_lib_generic_associative_lookup 201304L
+# define __cpp_lib_integer_sequence 201304L
+# define __cpp_lib_make_reverse_iterator 201402L
+# define __cpp_lib_make_unique 201304L
# ifndef _GLIBCXX_DEBUG // PR libstdc++/70303
# define __cpp_lib_null_iterators 201304L
# endif
-# define __cpp_lib_quoted_string_io 201304
-# define __cpp_lib_robust_nonmodifying_seq_ops 201304
+# define __cpp_lib_quoted_string_io 201304L
+# define __cpp_lib_robust_nonmodifying_seq_ops 201304L
# ifdef _GLIBCXX_HAS_GTHREADS
# define __cpp_lib_shared_timed_mutex 201402L
# endif
-# define __cpp_lib_string_udls 201304
-# define __cpp_lib_transparent_operators 201510
+# define __cpp_lib_string_udls 201304L
+# define __cpp_lib_transparent_operators 201510L
# define __cpp_lib_tuple_element_t 201402L
# define __cpp_lib_tuples_by_type 201304L
#endif
#if __cplusplus >= 201703L
// c++17
-#define __cpp_lib_addressof_constexpr 201603
-#define __cpp_lib_atomic_is_always_lock_free 201603
-#define __cpp_lib_bool_constant 201505
-#define __cpp_lib_byte 201603
+#define __cpp_lib_addressof_constexpr 201603L
+#define __cpp_lib_atomic_is_always_lock_free 201603L
+#define __cpp_lib_bool_constant 201505L
+#define __cpp_lib_byte 201603L
#ifdef _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP
-# define __cpp_lib_has_unique_object_representations 201606
+# define __cpp_lib_has_unique_object_representations 201606L
#endif
#ifdef _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE
-# define __cpp_lib_is_aggregate 201703
+# define __cpp_lib_is_aggregate 201703L
#endif
-#define __cpp_lib_is_invocable 201703
-#define __cpp_lib_is_swappable 201603
+#define __cpp_lib_is_invocable 201703L
+#define __cpp_lib_is_swappable 201603L
#ifdef _GLIBCXX_HAVE_BUILTIN_LAUNDER
-# define __cpp_lib_launder 201606
+# define __cpp_lib_launder 201606L
#endif
-#define __cpp_lib_logical_traits 201510
+#define __cpp_lib_logical_traits 201510L
#define __cpp_lib_type_trait_variable_templates 201510L
#define __cpp_lib_uncaught_exceptions 201411L
-#define __cpp_lib_void_t 201411
+#define __cpp_lib_void_t 201411L
#if _GLIBCXX_HOSTED
#define __cpp_lib_any 201606L
-#define __cpp_lib_apply 201603
+#define __cpp_lib_apply 201603L
#if __cplusplus == 201703L // N.B. updated value in C++20
# define __cpp_lib_array_constexpr 201803L
#endif
-#define __cpp_lib_as_const 201510
-#define __cpp_lib_boyer_moore_searcher 201603
-#define __cpp_lib_chrono 201611
-#define __cpp_lib_clamp 201603
+#define __cpp_lib_as_const 201510L
+#define __cpp_lib_boyer_moore_searcher 201603L
+#define __cpp_lib_chrono 201611L
+#define __cpp_lib_clamp 201603L
#if __cplusplus == 201703L // N.B. updated value in C++20
# if _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED
# define __cpp_lib_constexpr_char_traits 201611L
# define __cpp_lib_constexpr_string 201611L
# endif
#endif
-#define __cpp_lib_enable_shared_from_this 201603
+#define __cpp_lib_enable_shared_from_this 201603L
#define __cpp_lib_execution 201902L // FIXME: should be 201603L
-#define __cpp_lib_filesystem 201703
-#define __cpp_lib_gcd 201606
-#define __cpp_lib_gcd_lcm 201606
+#define __cpp_lib_filesystem 201703L
+#define __cpp_lib_gcd 201606L
+#define __cpp_lib_gcd_lcm 201606L
#ifdef __GCC_DESTRUCTIVE_SIZE
# define __cpp_lib_hardware_interference_size 201703L
#endif
-#define __cpp_lib_hypot 201603
+#define __cpp_lib_hypot 201603L
#define __cpp_lib_invoke 201411L
-#define __cpp_lib_lcm 201606
-#define __cpp_lib_make_from_tuple 201606
-#define __cpp_lib_map_try_emplace 201411
+#define __cpp_lib_lcm 201606L
+#define __cpp_lib_make_from_tuple 201606L
+#define __cpp_lib_map_try_emplace 201411L
#define __cpp_lib_math_special_functions 201603L
#ifdef _GLIBCXX_HAS_GTHREADS
# define __cpp_lib_memory_resource 201603L
#else
# define __cpp_lib_memory_resource 1
#endif
-#define __cpp_lib_node_extract 201606
-#define __cpp_lib_nonmember_container_access 201411
-#define __cpp_lib_not_fn 201603
+#define __cpp_lib_node_extract 201606L
+#define __cpp_lib_nonmember_container_access 201411L
+#define __cpp_lib_not_fn 201603L
#if __cplusplus == 201703L // N.B. updated value in C++20
# define __cpp_lib_optional 201606L
#endif
#define __cpp_lib_parallel_algorithm 201603L
#define __cpp_lib_raw_memory_algorithms 201606L
-#define __cpp_lib_sample 201603
+#define __cpp_lib_sample 201603L
#ifdef _GLIBCXX_HAS_GTHREADS
-# define __cpp_lib_scoped_lock 201703
+# define __cpp_lib_scoped_lock 201703L
# define __cpp_lib_shared_mutex 201505L
#endif
#define __cpp_lib_shared_ptr_weak_type 201606L
@@ -174,7 +174,7 @@
#if _GLIBCXX_HAVE_USELOCALE
# define __cpp_lib_to_chars 201611L
#endif
-#define __cpp_lib_unordered_map_try_emplace 201411
+#define __cpp_lib_unordered_map_try_emplace 201411L
#ifndef _GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS
// N.B. updated value in C++20
# define __cpp_lib_variant 202102L