TRIQS/itertools 1.3.0
C++ range library
|
#include "./product.hpp"
#include <algorithm>
#include <array>
#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. | |