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 <jwak...@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 --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); +}