|
TRIQS/itertools 1.3.0
C++ range library
|
#include "./product.hpp"#include <algorithm>#include <array>#include <cassert>#include <compare>#include <concepts>#include <iostream>#include <iterator>#include <stdexcept>#include <utility>Provides an integer range similar to Python's range.
Definition in file range.hpp.
Go to the source code of this file.
Classes | |
| class | itertools::range |
| A lazy range of integers that mimics a Python range. More... | |
| struct | itertools::range::all_t |
| Denote a full range at compile-time. More... | |
| struct | itertools::range::const_iterator |
| Const iterator type for itertools::range. More... | |
Functions | |
| template<typename F> | |
| void | itertools::foreach (range const &rg, F &&f) |
| Apply a function to every element of an integer itertools::range. | |
| template<typename... Is, typename EnableIf = std::enable_if_t<(std::is_integral_v<Is> and ...), int>> | |
| auto | itertools::product_range (Is... is) |
| Create a cartesian product range of integer ranges from given integers. | |
| template<typename I, size_t N, typename EnableIf = std::enable_if_t<std::is_integral_v<I>, int>> | |
| auto | itertools::product_range (std::array< I, N > const &idx_arr) |
| Create a cartesian product range of integer ranges from an array of integers. | |
| template<typename... Is, typename EnableIf = std::enable_if_t<(std::is_integral_v<Is> and ...), int>> | |
| auto | itertools::product_range (std::tuple< Is... > const &idx_tpl) |
| Create a cartesian product range of integer ranges from a tuple of integers. | |