@@ -83,9 +83,6 @@ struct reduction_traits {
8383 using type = typename R<Args..., O, I>::type;
8484};
8585
86- template <template <class ...> class T , class ... Args>
87- using traits_t = typename T<Args...>::type;
88-
8986template <auto V> struct nontype_t ; // For compatibility before C++26
9087
9188template <class Expr >
@@ -579,6 +576,9 @@ template <class... A1, class... A2>
579576struct composite_accessor_merge_traits <
580577 composite_accessor_impl<A1...>, composite_accessor_impl<A2...>>
581578 : std::type_identity<composite_accessor_impl<A1..., A2...>> {};
579+ template <class A1 , class A2 >
580+ using merged_composite_accessor =
581+ typename composite_accessor_merge_traits<A1, A2>::type;
582582
583583template <class P > struct ptr_traits : inapplicable_traits {};
584584template <class P >
@@ -705,10 +705,10 @@ struct facade_traits<F>
705705 lifetime_meta_t <F, destroy_dispatch, void () noexcept , void (),
706706 F::constraints.destructibility >, typename facade_traits::conv_meta,
707707 typename facade_traits::refl_meta>;
708- using indirect_accessor = traits_t <composite_accessor_merge_traits,
708+ using indirect_accessor = merged_composite_accessor<
709709 typename facade_traits::conv_indirect_accessor,
710710 typename facade_traits::refl_indirect_accessor>;
711- using direct_accessor = traits_t <composite_accessor_merge_traits,
711+ using direct_accessor = merged_composite_accessor<
712712 typename facade_traits::conv_direct_accessor,
713713 typename facade_traits::refl_direct_accessor>;
714714
@@ -779,7 +779,7 @@ template <class M>
779779 std::is_nothrow_default_constructible_v<M> &&
780780 std::is_trivially_copyable_v<M>)
781781struct meta_ptr_traits <M> : meta_ptr_traits_impl<M> {};
782- template <class M > using meta_ptr = traits_t <meta_ptr_traits, M> ;
782+ template <class M > using meta_ptr = typename meta_ptr_traits<M>::type ;
783783
784784template <class T >
785785class inplace_ptr {
0 commit comments