Header file range/v3/utility/tagged_tuple.hpp

#include <range/v3/range_fwd.hpp>

#include <range/v3/utility/tagged_pair.hpp>

namespace ranges
{
    inline namespace v3
    {
        template <typename ... Ts>
        using tagged_tuple = tagged<std::tuple<detail::tag_elem<Ts>...>, detail::tag_spec<Ts>...>;
        
        template <typename ... Tags, typename ... Ts>
        constexpr tagged_tuple<Tags(bind_element_t<Ts>)...> make_tagged_tuple(bind_element_t<Ts>, Ts&&... ts);
    }
}