29 using value_type = std::tuple<decltype(*std::declval<T>().begin())...>;
31 using pointer = std::tuple<decltype(*std::declval<T>().begin())...> *;
32 using reference = std::tuple<decltype(*std::declval<T>().begin())...> &;
35 std::tuple<decltype(std::declval<T>().begin())...>
_iterators;
37 template <std::size_t...
I>
auto deref(std::index_sequence<I...>)
const {
41 template <std::size_t...
I>
void increment(std::index_sequence<I...>) {
50 increment(std::index_sequence_for<T...>{});
56 increment(std::index_sequence_for<T...>{});
71 _end{make_tuple_end(_seqs,
72 std::make_index_sequence<
sizeof...(
seqs)>{})} {}
78 template <
typename Tuple, std::size_t...
Is>
80 return std::make_tuple(std::get<Is>(
t).begin()...);
83 template <
typename Tuple, std::size_t...
Is>
85 return std::make_tuple(std::get<Is>(
t).end()...);
97template <
typename... T>
auto zip(T &&...
seqs) {
std::tuple< decltype(*std::declval< T >().begin())... > & reference
Definition zip.hpp:32
std::forward_iterator_tag iterator_category
Definition zip.hpp:28
void increment(std::index_sequence< I... >)
Definition zip.hpp:41
auto deref(std::index_sequence< I... >) const
Definition zip.hpp:37
std::tuple< decltype(*std::declval< T >().begin())... > value_type
Definition zip.hpp:29
auto operator*() const
Definition zip.hpp:64
std::tuple< decltype(std::declval< T >().begin())... > _iterators
Definition zip.hpp:35
bool operator!=(const iterator &other) const
Definition zip.hpp:60
iterator(decltype(_iterators) iterators)
Definition zip.hpp:46
iterator & operator++()
Definition zip.hpp:49
std::tuple< decltype(*std::declval< T >().begin())... > * pointer
Definition zip.hpp:31
std::tuple< decltype(*std::declval< T >().begin())... > difference_type
Definition zip.hpp:30
iterator operator++(int)
Definition zip.hpp:54
auto constexpr make_tuple_begin(Tuple &&t, std::index_sequence< Is... >)
Definition zip.hpp:79
zip_helper(T &&...seqs)
Definition zip.hpp:67
iterator end() const
Definition zip.hpp:75
iterator begin() const
Definition zip.hpp:74
iterator _end
Definition zip.hpp:91
auto constexpr make_tuple_end(Tuple &&t, std::index_sequence< Is... >)
Definition zip.hpp:84
iterator _begin
Definition zip.hpp:90
std::tuple< T... > _seqs
Definition zip.hpp:89
auto zip(T &&...seqs)
Definition zip.hpp:97
Definition boundary.hpp:22
constexpr bool is_SplineType_v
Alias to the value of is_SplineType.
Definition bspline.hpp:3243