public inbox for libstdc++-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r11-6155] libstdc++: Simplify built-in detection in <utility>
@ 2020-12-16 19:25 Jonathan Wakely
  0 siblings, 0 replies; only message in thread
From: Jonathan Wakely @ 2020-12-16 19:25 UTC (permalink / raw)
  To: gcc-cvs, libstdc++-cvs

https://gcc.gnu.org/g:4d4f82959aa0802611f1183389c4c74d22431e49

commit r11-6155-g4d4f82959aa0802611f1183389c4c74d22431e49
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Dec 16 17:18:10 2020 +0000

    libstdc++: Simplify built-in detection in <utility>
    
    Now that GCC supports __has_builtin there is no need to test whether
    it's defined, we can just use it unconditionally.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/utility: Use __has_builtin without checking if
            it's defined.

Diff:
---
 libstdc++-v3/include/std/utility | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/libstdc++-v3/include/std/utility b/libstdc++-v3/include/std/utility
index 4a9ad604cbc..61573f42f3f 100644
--- a/libstdc++-v3/include/std/utility
+++ b/libstdc++-v3/include/std/utility
@@ -297,27 +297,23 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   // extract the elements in a tuple.
   template<size_t... _Indexes> struct _Index_tuple { };
 
-#ifdef __has_builtin
-# if __has_builtin(__make_integer_seq)
-#  define _GLIBCXX_USE_MAKE_INTEGER_SEQ 1
-# endif
-#endif
-
   // Builds an _Index_tuple<0, 1, 2, ..., _Num-1>.
   template<size_t _Num>
     struct _Build_index_tuple
     {
-#if _GLIBCXX_USE_MAKE_INTEGER_SEQ
+#if __has_builtin(__make_integer_seq)
       template<typename, size_t... _Indices>
         using _IdxTuple = _Index_tuple<_Indices...>;
 
+      // Clang defines __make_integer_seq for this purpose.
       using __type = __make_integer_seq<_IdxTuple, size_t, _Num>;
 #else
+      // For GCC and other compilers, use __integer_pack instead.
       using __type = _Index_tuple<__integer_pack(_Num)...>;
 #endif
     };
 
-#if __cplusplus > 201103L
+#if __cplusplus >= 201402L
 
 #define __cpp_lib_integer_sequence 201304
 
@@ -332,14 +328,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   /// Alias template make_integer_sequence
   template<typename _Tp, _Tp _Num>
     using make_integer_sequence
-#if _GLIBCXX_USE_MAKE_INTEGER_SEQ
+#if __has_builtin(__make_integer_seq)
       = __make_integer_seq<integer_sequence, _Tp, _Num>;
 #else
       = integer_sequence<_Tp, __integer_pack(_Num)...>;
 #endif
 
-#undef _GLIBCXX_USE_MAKE_INTEGER_SEQ
-
   /// Alias template index_sequence
   template<size_t... _Idx>
     using index_sequence = integer_sequence<size_t, _Idx...>;


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-12-16 19:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-16 19:25 [gcc r11-6155] libstdc++: Simplify built-in detection in <utility> Jonathan Wakely

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).