diff mbox series

PR libstdc++/83830 Define std::has_unique_object_representations_v

Message ID 20180115150233.GA30173@redhat.com
State New
Headers show
Series PR libstdc++/83830 Define std::has_unique_object_representations_v | expand

Commit Message

Jonathan Wakely Jan. 15, 2018, 3:02 p.m. UTC
Add this missing C++17 variable template.

	PR libstdc++/83830
	* include/std/type_traits (has_unique_object_representations_v): Add
	variable template.
	* testsuite/20_util/has_unique_object_representations/value.cc: Check
	variable template.

Tested powerpc64le-linux, committed to trunk.
commit 37f21e406cb84c041adb1537079ced465a79e4be
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Jan 15 13:23:53 2018 +0000

    PR libstdc++/83830 Define std::has_unique_object_representations_v
    
            PR libstdc++/83830
            * include/std/type_traits (has_unique_object_representations_v): Add
            variable template.
            * testsuite/20_util/has_unique_object_representations/value.cc: Check
            variable template.
diff mbox series

Patch

diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits
index 43ea68e6c6b..711d6c50dd1 100644
--- a/libstdc++-v3/include/std/type_traits
+++ b/libstdc++-v3/include/std/type_traits
@@ -2903,6 +2903,10 @@  template <typename _From, typename _To>
       remove_cv_t<remove_all_extents_t<_Tp>>
       )>
     { };
+
+  template<typename _Tp>
+    inline constexpr bool has_unique_object_representations_v
+      = has_unique_object_representations<_Tp>::value;
 #endif
 #undef _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP
 
diff --git a/libstdc++-v3/testsuite/20_util/has_unique_object_representations/value.cc b/libstdc++-v3/testsuite/20_util/has_unique_object_representations/value.cc
index c2a5873ee69..7ac97cf0ba4 100644
--- a/libstdc++-v3/testsuite/20_util/has_unique_object_representations/value.cc
+++ b/libstdc++-v3/testsuite/20_util/has_unique_object_representations/value.cc
@@ -108,3 +108,17 @@  void test01()
   static_assert(test_category<has_unique_object_representations,
 		Aligned[][1]>(false), "");
 }
+
+void
+test02()
+{
+  using std::has_unique_object_representations;
+  using std::has_unique_object_representations_v;
+
+  static_assert(has_unique_object_representations_v<int>
+		== has_unique_object_representations<int>::value);
+  static_assert(has_unique_object_representations_v<void>
+		== has_unique_object_representations<void>::value);
+  static_assert(has_unique_object_representations_v<float>
+		== has_unique_object_representations<float>::value);
+}