TRIQS/itertools 1.3.0
C++ range library
Loading...
Searching...
No Matches
product.hpp File Reference
#include "./iterator_facade.hpp"
#include "./sentinel.hpp"
#include <cstddef>
#include <iterator>
#include <tuple>
#include <utility>

Detailed Description

Provides a range adapting function for multiplying a given number of ranges/views (cartesian product).

Definition in file product.hpp.

Go to the source code of this file.

Classes

struct  itertools::multiplied< Rs >
 Represents a cartesian product of ranges. More...
 
struct  itertools::prod_iter< EndIters, Iters >
 Iterator for a itertools::multiplied (cartesian product) range. More...
 

Functions

template<typename R , size_t N>
auto itertools::make_product (std::array< R, N > &arr)
 Create a cartesian product range from an array of ranges.
 
template<typename R , size_t N>
auto itertools::make_product (std::array< R, N > const &arr)
 Const overload of make_product(std::array<R, N> &).
 
template<typename... Rs>
itertools::multiplied< Rs... > itertools::product (Rs &&...rgs)
 Lazy-multiply a given number of ranges by forming their cartesian product.