diff options
Diffstat (limited to 'contrib/llvm-project/libcxx/include/__iterator/readable_traits.h')
-rw-r--r-- | contrib/llvm-project/libcxx/include/__iterator/readable_traits.h | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/contrib/llvm-project/libcxx/include/__iterator/readable_traits.h b/contrib/llvm-project/libcxx/include/__iterator/readable_traits.h index 9e101fc28a6f..25e74567fff1 100644 --- a/contrib/llvm-project/libcxx/include/__iterator/readable_traits.h +++ b/contrib/llvm-project/libcxx/include/__iterator/readable_traits.h @@ -29,50 +29,50 @@ _LIBCPP_BEGIN_NAMESPACE_STD #if _LIBCPP_STD_VER >= 20 // [readable.traits] -template<class> struct __cond_value_type {}; +template <class> +struct __cond_value_type {}; -template<class _Tp> -requires is_object_v<_Tp> -struct __cond_value_type<_Tp> { using value_type = remove_cv_t<_Tp>; }; +template <class _Tp> + requires is_object_v<_Tp> +struct __cond_value_type<_Tp> { + using value_type = remove_cv_t<_Tp>; +}; -template<class _Tp> +template <class _Tp> concept __has_member_value_type = requires { typename _Tp::value_type; }; -template<class _Tp> +template <class _Tp> concept __has_member_element_type = requires { typename _Tp::element_type; }; -template<class> struct indirectly_readable_traits {}; +template <class> +struct indirectly_readable_traits {}; -template<class _Ip> -requires is_array_v<_Ip> +template <class _Ip> + requires is_array_v<_Ip> struct indirectly_readable_traits<_Ip> { using value_type = remove_cv_t<remove_extent_t<_Ip>>; }; -template<class _Ip> +template <class _Ip> struct indirectly_readable_traits<const _Ip> : indirectly_readable_traits<_Ip> {}; -template<class _Tp> +template <class _Tp> struct indirectly_readable_traits<_Tp*> : __cond_value_type<_Tp> {}; -template<__has_member_value_type _Tp> -struct indirectly_readable_traits<_Tp> - : __cond_value_type<typename _Tp::value_type> {}; +template <__has_member_value_type _Tp> +struct indirectly_readable_traits<_Tp> : __cond_value_type<typename _Tp::value_type> {}; -template<__has_member_element_type _Tp> -struct indirectly_readable_traits<_Tp> - : __cond_value_type<typename _Tp::element_type> {}; +template <__has_member_element_type _Tp> +struct indirectly_readable_traits<_Tp> : __cond_value_type<typename _Tp::element_type> {}; -template<__has_member_value_type _Tp> +template <__has_member_value_type _Tp> requires __has_member_element_type<_Tp> struct indirectly_readable_traits<_Tp> {}; -template<__has_member_value_type _Tp> +template <__has_member_value_type _Tp> requires __has_member_element_type<_Tp> && - same_as<remove_cv_t<typename _Tp::element_type>, - remove_cv_t<typename _Tp::value_type>> -struct indirectly_readable_traits<_Tp> - : __cond_value_type<typename _Tp::value_type> {}; + same_as<remove_cv_t<typename _Tp::element_type>, remove_cv_t<typename _Tp::value_type>> +struct indirectly_readable_traits<_Tp> : __cond_value_type<typename _Tp::value_type> {}; #endif // _LIBCPP_STD_VER >= 20 |