This patch lets libstdc++ use new built-in trait __add_const.

libstdc++-v3/ChangeLog:

        * include/std/type_traits (add_const): Use __add_const built-in trait.
---
 libstdc++-v3/include/std/type_traits | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libstdc++-v3/include/std/type_traits 
b/libstdc++-v3/include/std/type_traits
index 2bd607a8b8f..1ac75a928c3 100644
--- a/libstdc++-v3/include/std/type_traits
+++ b/libstdc++-v3/include/std/type_traits
@@ -1560,9 +1560,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #endif
 
   /// add_const
+#if __has_builtin(__add_const)
+  template<typename _Tp>
+    struct add_const
+    { using type = __add_const(_Tp); };
+#else
   template<typename _Tp>
     struct add_const
     { using type = _Tp const; };
+#endif
 
   /// add_volatile
   template<typename _Tp>
-- 
2.40.0

Reply via email to