| 3910 | // and N>0, which is merge with other members of group N. |
| 3911 | template<typename CombiningGroups, typename... Args> |
| 3912 | constexpr auto make_combining(tuple<Args...> parsers) |
| 3913 | { |
| 3914 | if constexpr (std::is_same_v<CombiningGroups, merge_t>) { |
| 3915 | detail::static_assert_merge_attributes(parsers); |
| 3916 | return detail::make_default_combining_impl<1>( |
| 3917 | std::make_integer_sequence<int, sizeof...(Args)>()); |
| 3918 | } else if constexpr (std::is_same_v<CombiningGroups, separate_t>) { |
| 3919 | return detail::make_default_combining_impl<-1>( |
| 3920 | std::make_integer_sequence<int, sizeof...(Args)>()); |
| 3921 | } else { |
| 3922 | return CombiningGroups{}; |
| 3923 | } |
| 3924 | } |
| 3925 | template<typename ParserTuple, typename CombiningGroups> |
| 3926 | using combining_t = decltype(detail::make_combining<CombiningGroups>( |
| 3927 | std::declval<ParserTuple>())); |
nothing calls this directly
no test coverage detected