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

Classes

class  ranges::v3::cartesian_product_view< Views >
 
struct  ranges::v3::detail::cartesian_size_fn
 
struct  ranges::v3::view::cartesian_product_fn
 

Typedefs

template<typename... Views>
using ranges::v3::detail::cartesian_product_cardinality = meta::fold< meta::list< range_cardinality< Views >... >, std::integral_constant< cardinality, static_cast< cardinality >((sizeof...(Views) > 0))>, meta::quote< detail::product_cardinality > >
 
template<typename State , typename Value >
using ranges::v3::detail::product_cardinality = std::integral_constant< cardinality, State::value==0||Value::value==0 ? static_cast< cardinality >(0) :State::value==unknown||Value::value==unknown ? unknown :State::value==infinite||Value::value==infinite ? infinite :State::value==finite||Value::value==finite ? finite :static_cast< cardinality >(State::value *Value::value)>
 

Variables

constexpr cartesian_product_fn ranges::v3::view::cartesian_product {}