From 0eb2f404be20d3caf34c85ec8fcc5c0db505df67 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Mon, 24 Feb 2020 15:17:03 +0100 Subject: [PATCH] clang-format applied to type_list --- src/include/units/bits/external/type_list.h | 251 ++++++++++---------- 1 file changed, 126 insertions(+), 125 deletions(-) diff --git a/src/include/units/bits/external/type_list.h b/src/include/units/bits/external/type_list.h index 4126738e..e9e67291 100644 --- a/src/include/units/bits/external/type_list.h +++ b/src/include/units/bits/external/type_list.h @@ -26,179 +26,180 @@ namespace units { - namespace detail { +namespace detail { - template - inline constexpr bool is_type_list = false; +template +inline constexpr bool is_type_list = false; - template typename T, typename... Types> - inline constexpr bool is_type_list> = true; +template typename T, typename... Types> +inline constexpr bool is_type_list> = true; - } // namespace detail +} // namespace detail - template - concept TypeList = detail::is_type_list; +template +concept TypeList = detail::is_type_list; - // push_front +// push_front - namespace detail { +namespace detail { - template - struct type_list_push_front_impl; +template +struct type_list_push_front_impl; - template typename List, typename... OldTypes, typename... NewTypes> - struct type_list_push_front_impl, NewTypes...> { - using type = List; - }; +template typename List, typename... OldTypes, typename... NewTypes> +struct type_list_push_front_impl, NewTypes...> { + using type = List; +}; - } +} // namespace detail - template - using type_list_push_front = detail::type_list_push_front_impl::type; +template +using type_list_push_front = detail::type_list_push_front_impl::type; - // push_back +// push_back - namespace detail { +namespace detail { - template - struct type_list_push_back_impl; +template +struct type_list_push_back_impl; - template typename List, typename... OldTypes, typename... NewTypes> - struct type_list_push_back_impl, NewTypes...> { - using type = List; - }; +template typename List, typename... OldTypes, typename... NewTypes> +struct type_list_push_back_impl, NewTypes...> { + using type = List; +}; - } +} // namespace detail - template - using type_list_push_back = detail::type_list_push_back_impl::type; +template +using type_list_push_back = detail::type_list_push_back_impl::type; - // join +// join - namespace detail { +namespace detail { - template - struct type_list_join_impl { - using type = List; - }; +template +struct type_list_join_impl { + using type = List; +}; - template typename List, typename... First, typename... Second, typename... Rest> - struct type_list_join_impl, List, Rest...> { - using type = type_list_join_impl, Rest...>::type; - }; +template typename List, typename... First, typename... Second, typename... Rest> +struct type_list_join_impl, List, Rest...> { + using type = type_list_join_impl, Rest...>::type; +}; - } +} // namespace detail - template - using type_list_join = detail::type_list_join_impl::type; +template +using type_list_join = detail::type_list_join_impl::type; - // split +// split - namespace detail { +namespace detail { - template typename List, std::size_t Idx, std::size_t N, typename... Types> - struct split_impl; +template typename List, std::size_t Idx, std::size_t N, typename... Types> +struct split_impl; - template typename List, std::size_t Idx, std::size_t N> - struct split_impl { - using first_list = List<>; - using second_list = List<>; - }; +template typename List, std::size_t Idx, std::size_t N> +struct split_impl { + using first_list = List<>; + using second_list = List<>; +}; - template typename List, std::size_t Idx, std::size_t N, typename T, typename... Rest> - struct split_impl : split_impl { - using base = split_impl; - using first_list = conditional::type, - typename base::first_list>; - using second_list = conditional::type>; - }; +template typename List, std::size_t Idx, std::size_t N, typename T, typename... Rest> +struct split_impl : split_impl { + using base = split_impl; + using first_list = conditional::type, + typename base::first_list>; + using second_list = conditional::type>; +}; - } // namespace detail +} // namespace detail - template - struct type_list_split; +template +struct type_list_split; - template typename List, std::size_t N, typename... Types> - struct type_list_split, N> { - static_assert(N <= sizeof...(Types), "Invalid index provided"); - using split = detail::split_impl; - using first_list = split::first_list; - using second_list = split::second_list; - }; +template typename List, std::size_t N, typename... Types> +struct type_list_split, N> { + static_assert(N <= sizeof...(Types), "Invalid index provided"); + using split = detail::split_impl; + using first_list = split::first_list; + using second_list = split::second_list; +}; - // split_half +// split_half - template - struct type_list_split_half; +template +struct type_list_split_half; - template typename List, typename... Types> - struct type_list_split_half> : type_list_split, (sizeof...(Types) + 1) / 2> { - }; +template typename List, typename... Types> +struct type_list_split_half> : type_list_split, (sizeof...(Types) + 1) / 2> { +}; - // merge_sorted +// merge_sorted - namespace detail { +namespace detail { - template typename Pred> - struct type_list_merge_sorted_impl; +template typename Pred> +struct type_list_merge_sorted_impl; - template typename List, typename... Lhs, template typename Pred> - struct type_list_merge_sorted_impl, List<>, Pred> { - using type = List; - }; +template typename List, typename... Lhs, template typename Pred> +struct type_list_merge_sorted_impl, List<>, Pred> { + using type = List; +}; - template typename List, typename... Rhs, template typename Pred> - struct type_list_merge_sorted_impl, List, Pred> { - using type = List; - }; +template typename List, typename... Rhs, template typename Pred> +struct type_list_merge_sorted_impl, List, Pred> { + using type = List; +}; - template typename List, typename Lhs1, typename... LhsRest, typename Rhs1, typename... RhsRest, - template typename Pred> - struct type_list_merge_sorted_impl, List, Pred> { - using type = conditional< - Pred::value, - typename type_list_push_front_impl, List, Pred>::type, Lhs1>::type, - typename type_list_push_front_impl, List, Pred>::type, Rhs1>::type>; - }; +template typename List, typename Lhs1, typename... LhsRest, typename Rhs1, typename... RhsRest, + template typename Pred> +struct type_list_merge_sorted_impl, List, Pred> { + using type = conditional< + Pred::value, + typename type_list_push_front_impl< + typename type_list_merge_sorted_impl, List, Pred>::type, Lhs1>::type, + typename type_list_push_front_impl< + typename type_list_merge_sorted_impl, List, Pred>::type, Rhs1>::type>; +}; - } +} // namespace detail - template typename Pred> - using type_list_merge_sorted = detail::type_list_merge_sorted_impl::type; +template typename Pred> +using type_list_merge_sorted = detail::type_list_merge_sorted_impl::type; +// sort - // sort +namespace detail { - namespace detail { +template typename Pred> +struct type_list_sort_impl; - template typename Pred> - struct type_list_sort_impl; +template typename List, template typename Pred> +struct type_list_sort_impl, Pred> { + using type = List<>; +}; - template typename List, template typename Pred> - struct type_list_sort_impl, Pred> { - using type = List<>; - }; +template typename List, typename T, template typename Pred> +struct type_list_sort_impl, Pred> { + using type = List; +}; - template typename List, typename T, template typename Pred> - struct type_list_sort_impl, Pred> { - using type = List; - }; +template typename List, typename... Types, template typename Pred> +struct type_list_sort_impl, Pred> { + using types = List; + using split = type_list_split_half>; + using sorted_left = type_list_sort_impl::type; + using sorted_right = type_list_sort_impl::type; + using type = type_list_merge_sorted_impl::type; +}; - template typename List, typename... Types, template typename Pred> - struct type_list_sort_impl, Pred> { - using types = List; - using split = type_list_split_half>; - using sorted_left = type_list_sort_impl::type; - using sorted_right = type_list_sort_impl::type; - using type = type_list_merge_sorted_impl::type; - }; +} // namespace detail - } - - template typename Pred> - using type_list_sort = detail::type_list_sort_impl::type; +template typename Pred> +using type_list_sort = detail::type_list_sort_impl::type; } // namespace units