Range-v3
Range algorithms, views, and actions for the Standard Library
cartesian_product.hpp File Reference

Classes

struct  ranges::cartesian_product_view< Views >
 
struct  ranges::views::cartesian_product_fn
 

Variables

template<typename IsConst , typename... Views>
concept ranges::cartesian_produce_view_can_bidi
 
template<typename IsConst , typename... Views>
concept ranges::cartesian_produce_view_can_bidi_ = and_v<common_range<meta::const_if<IsConst, Views>>..., bidirectional_iterator<iterator_t<meta::const_if<IsConst, Views>>>...>
 
template<typename... Views>
concept ranges::cartesian_produce_view_can_const
 
template<typename IsConst , typename... Views>
concept ranges::cartesian_produce_view_can_distance
 
template<typename IsConst , typename... Views>
concept ranges::cartesian_produce_view_can_distance_ = and_v<sized_sentinel_for< iterator_t<meta::const_if<IsConst, Views>>, iterator_t<meta::const_if<IsConst, Views>>>...>
 
template<typename IsConst , typename... Views>
concept ranges::cartesian_produce_view_can_random
 
template<typename IsConst , typename... Views>
concept ranges::cartesian_produce_view_can_random_ = and_v<random_access_iterator<iterator_t<meta::const_if<IsConst, Views>>>...>
 
template<typename IsConst , typename... Views>
concept ranges::cartesian_produce_view_can_size
 
template<typename IsConst , typename... Views>
concept ranges::cartesian_produce_view_can_size_ = and_v<common_with<std::uintmax_t, range_size_t<meta::const_if<IsConst, Views>>>...>
 
constexpr cartesian_product_fn ranges::views::cartesian_product {}