summaryrefslogtreecommitdiffstats
path: root/libcxx/include/utility
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/include/utility')
-rw-r--r--libcxx/include/utility18
1 files changed, 14 insertions, 4 deletions
diff --git a/libcxx/include/utility b/libcxx/include/utility
index cfab350cb83..5e555065622 100644
--- a/libcxx/include/utility
+++ b/libcxx/include/utility
@@ -928,10 +928,20 @@ inline in_place_tag in_place(__in_place_index_tag<_Nx>) {
return in_place_tag(__in_place_tag{});
}
-template <class _Tp> struct __is_inplace_type : false_type {};
-template <> struct __is_inplace_type<in_place_t> : true_type {};
-template <class _Tp> struct __is_inplace_type<in_place_type_t<_Tp>> : true_type {};
-template <size_t _Idx> struct __is_inplace_type<in_place_index_t<_Idx>> : true_type {};
+template <class _Tp> struct __is_inplace_tag_imp : false_type {};
+template <> struct __is_inplace_tag_imp<in_place_tag(__in_place_tag)> : true_type {};
+template <class _Tp> struct __is_inplace_tag_imp<in_place_tag(__in_place_type_tag<_Tp>)> : true_type {};
+template <size_t _Idx> struct __is_inplace_tag_imp<in_place_tag(__in_place_index_tag<_Idx>)> : true_type {};
+
+template <class _Tp>
+using __is_inplace_tag = __is_inplace_tag_imp<remove_pointer_t<decay_t<_Tp>>>;
+
+template <class _Tp> struct __is_inplace_type_tag_imp : false_type {};
+template <class _Tp> struct __is_inplace_type_tag_imp<in_place_tag(__in_place_type_tag<_Tp>)> : true_type {};
+
+template <class _Tp>
+using __is_inplace_type_tag = __is_inplace_type_tag_imp<remove_pointer_t<decay_t<_Tp>>>;
+
#endif // _LIBCPP_STD_VER > 14
OpenPOWER on IntegriCloud