Loading...
Searching...
No Matches
Classes | Namespaces
iterator_util.h File Reference

Extensions for STL iterators/ranges. More...

#include <memory>
#include <utility>
#include <iterator>
#include <ranges>
#include "concepts/util.h"

Go to the source code of this file.

Classes

class  cast_itr< CASTTYPE, ITR >
 Cast iterator; cast the result after deferencing. More...
 

Namespaces

namespace  bbm
 

Typedefs

Iterable container type traits
template<typename T >
using iterable_value_t = std::decay_t< decltype(*bbm::begin(std::declval< T >()))>
 

Functions

Extensions of size, begin, and end to non-iterable types
template<typename T >
size_t size (T &&t)
 
template<typename T >
auto begin (T &&t)
 
template<typename T >
auto cbegin (T &&t)
 
template<typename T >
auto end (T &&t)
 
template<typename T >
auto cend (T &&t)
 
template<typename T >
using is_cast_itr = bbm::detail::is_cast_itr_impl< std::decay_t< T > >
 
template<typename T >
using underlying_itr_t = typename bbm::detail::underlying_itr_impl< std::decay_t< T > >::type
 
template<typename T >
constexpr bool is_cast_itr_v = is_cast_itr<T>::value
 

Detailed Description

Extensions for STL iterators/ranges.