Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::cartesian_product_view< Views > Struct Template Reference
+ Inheritance diagram for ranges::cartesian_product_view< Views >:

Public Member Functions

constexpr cartesian_product_view (Views... views)
 
auto size ()
 
auto size () const
 
- Public Member Functions inherited from ranges::view_facade< cartesian_product_view< Views... >, detail::cartesian_product_cardinality< Views... >::value >
constexpr auto begin () -> detail::facade_iterator_t< D >
 Let d be static_cast<Derived &>(*this). Let b be std::as_const(d).begin_cursor() if that expression is well-formed; otherwise, let b be d.begin_cursor(). Let B be the type of b. More...
 
constexpr auto begin () const -> detail::facade_iterator_t< D const >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
constexpr auto end () -> detail::facade_sentinel_t< D >
 Let d be static_cast<Derived &>(*this). Let e be std::as_const(d).end_cursor() if that expression is well-formed; otherwise, let e be d.end_cursor(). Let E be the type of e. More...
 
constexpr auto end () const -> detail::facade_sentinel_t< D const >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 

Static Public Member Functions

template<int = 42>
static constexpr std::size_t size () noexcept
 

Additional Inherited Members

- Protected Member Functions inherited from ranges::view_facade< cartesian_product_view< Views... >, detail::cartesian_product_cardinality< Views... >::value >
constexpr view_as_cursor begin_cursor () const
 
constexpr default_sentinel_t end_cursor () const
 
- Protected Attributes inherited from ranges::view_facade< cartesian_product_view< Views... >, detail::cartesian_product_cardinality< Views... >::value >
friend range_access
 

Member Function Documentation

◆ size() [1/2]

template<typename... Views>
auto ranges::cartesian_product_view< Views >::size ( )
Precondition
requires (my_cardinality < 0) && cartesian_produce_view_can_size<std::false_type, Views...>

◆ size() [2/2]

template<typename... Views>
template<int = 42>
static constexpr std::size_t ranges::cartesian_product_view< Views >::size ( )
staticconstexprnoexcept
Precondition
requires (my_cardinality >= 0) //

References ranges::aux::move.