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.

From-SVN: r256701
This commit is contained in:
Jonathan Wakely 2018-01-15 15:02:01 +00:00 committed by Jonathan Wakely
parent e8f3b70ddb
commit b0e63d9483
3 changed files with 26 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2018-01-15 Jonathan Wakely <jwakely@redhat.com>
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.
2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
Make optional conditionally

View File

@ -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

View File

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