NEURON
enumerate.h File Reference
#include <algorithm>
#include <functional>
#include <tuple>

Go to the source code of this file.

Functions

template<typename T , typename F , typename value_type = typename T::value_type, typename TIter = decltype(std::begin(std::declval<T>())), typename = decltype(std::end(std::declval<T>()))>
void apply_to_first (T &&iterable, value_type &&value, F &&f)
 
template<typename T , typename value_type = typename T::value_type>
void erase_first (T &&iterable, value_type &&value)
 
template<typename T , typename TIter = decltype(std::begin(std::declval<T>())), typename = decltype(std::begin(std::declval<T>())), typename = decltype(std::end(std::declval<T>()))>
constexpr auto range (T &&iterable)
 
template<typename T , typename TIter = decltype(std::rbegin(std::declval<T>())), typename = decltype(std::rend(std::declval<T>()))>
constexpr auto reverse (T &&iterable)
 
template<typename T , typename TIter = decltype(std::begin(std::declval<T>())), typename = decltype(std::end(std::declval<T>()))>
constexpr auto enumerate (T &&iterable)
 
template<typename T , typename TIter = decltype(std::rbegin(std::declval<T>())), typename = decltype(std::rend(std::declval<T>()))>
constexpr auto renumerate (T &&iterable)
 

Function Documentation

◆ apply_to_first()

template<typename T , typename F , typename value_type = typename T::value_type, typename TIter = decltype(std::begin(std::declval<T>())), typename = decltype(std::end(std::declval<T>()))>
void apply_to_first ( T &&  iterable,
value_type &&  value,
F &&  f 
)

Definition at line 12 of file enumerate.h.

◆ enumerate()

template<typename T , typename TIter = decltype(std::begin(std::declval<T>())), typename = decltype(std::end(std::declval<T>()))>
constexpr auto enumerate ( T &&  iterable)
constexpr

Definition at line 90 of file enumerate.h.

◆ erase_first()

template<typename T , typename value_type = typename T::value_type>
void erase_first ( T &&  iterable,
value_type &&  value 
)

Definition at line 22 of file enumerate.h.

◆ range()

template<typename T , typename TIter = decltype(std::begin(std::declval<T>())), typename = decltype(std::begin(std::declval<T>())), typename = decltype(std::end(std::declval<T>()))>
constexpr auto range ( T &&  iterable)
constexpr

Definition at line 32 of file enumerate.h.

◆ renumerate()

template<typename T , typename TIter = decltype(std::rbegin(std::declval<T>())), typename = decltype(std::rend(std::declval<T>()))>
constexpr auto renumerate ( T &&  iterable)
constexpr

Definition at line 120 of file enumerate.h.

◆ reverse()

template<typename T , typename TIter = decltype(std::rbegin(std::declval<T>())), typename = decltype(std::rend(std::declval<T>()))>
constexpr auto reverse ( T &&  iterable)
constexpr

Definition at line 62 of file enumerate.h.