KTL
Loading...
Searching...
No Matches
ipair.h File Reference
#include "../utility/empty_base.h"
#include "ipair_fwd.h"
#include <cstddef>
#include <iterator>
#include <optional>

Go to the source code of this file.

Classes

struct  ktl::detail::is_iterable< T, typename >
 
struct  ktl::detail::is_iterable< T, std::void_t< decltype(std::begin(std::declval< T & >())), decltype(std::end(std::declval< T & >()))> >
 
struct  ktl::detail::is_decrementable< T, typename >
 
struct  ktl::detail::is_decrementable< T, std::void_t< decltype(--std::declval< T & >())> >
 
class  ktl::ipair_value< K, V >
 Pair of an index and value from an iterator. More...
 
class  ktl::ipair_iterator< K, I >
 Wraps an iterator to return an index along with the value. More...
 
class  ktl::ipair_iterable< K, C >
 Wraps an iterable object for use with indexed iterators. More...
 

Namespaces

namespace  ktl
 
namespace  ktl::detail
 

Functions

template<typename K , typename C >
ipair_iterable< K, C > ktl::ipair (C &&container) noexcept(std::is_nothrow_constructible_v< ipair_iterable< K, C >, C >)
 Wraps an iterable object to return an index along with the value.
 
template<typename C >
ipair_iterable< size_t, C > ktl::ipair (C &&container) noexcept(std::is_nothrow_constructible_v< ipair_iterable< size_t, C >, C >)
 Wraps an iterable object to return a size_t index along with the value.
 

Variables

template<typename T >
constexpr bool ktl::detail::is_iterable_v = is_iterable<T>::value
 
template<typename T >
constexpr bool ktl::detail::is_decrementable_v = is_decrementable<T>::value