ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
diplomat::next_to_iter_helper< T > Struct Template Reference

Helper template enabling native iteration over unique ptrs to objects which implement next() More...

#include <diplomat_runtime.hpp>

Public Types

using next_type = decltype(std::declval<T>().next())
 
using value_type = typename inner<next_type>::type
 
using difference_type = void
 
using reference = std::add_lvalue_reference_t<value_type>
 
using iterator_category = std::input_iterator_tag
 

Public Member Functions

 next_to_iter_helper (std::unique_ptr< T > &&ptr)
 
 next_to_iter_helper (const next_to_iter_helper &o)
 
void operator++ ()
 
void operator++ (int)
 
const value_typeoperator* () const
 
bool operator!= (std::nullopt_t)
 

Public Attributes

std::shared_ptr< T > _ptr
 
next_type _curr
 

Detailed Description

template<typename T>
struct diplomat::next_to_iter_helper< T >

Helper template enabling native iteration over unique ptrs to objects which implement next()

Member Typedef Documentation

◆ difference_type

template<typename T>
using diplomat::next_to_iter_helper< T >::difference_type = void

◆ iterator_category

template<typename T>
using diplomat::next_to_iter_helper< T >::iterator_category = std::input_iterator_tag

◆ next_type

template<typename T>
using diplomat::next_to_iter_helper< T >::next_type = decltype(std::declval<T>().next())

◆ reference

template<typename T>
using diplomat::next_to_iter_helper< T >::reference = std::add_lvalue_reference_t<value_type>

◆ value_type

template<typename T>
using diplomat::next_to_iter_helper< T >::value_type = typename inner<next_type>::type

Constructor & Destructor Documentation

◆ next_to_iter_helper() [1/2]

template<typename T>
diplomat::next_to_iter_helper< T >::next_to_iter_helper ( std::unique_ptr< T > && ptr)
inline

◆ next_to_iter_helper() [2/2]

template<typename T>
diplomat::next_to_iter_helper< T >::next_to_iter_helper ( const next_to_iter_helper< T > & o)
inline

Member Function Documentation

◆ operator!=()

template<typename T>
bool diplomat::next_to_iter_helper< T >::operator!= ( std::nullopt_t )
inline

◆ operator*()

template<typename T>
const value_type & diplomat::next_to_iter_helper< T >::operator* ( ) const
inline

◆ operator++() [1/2]

template<typename T>
void diplomat::next_to_iter_helper< T >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename T>
void diplomat::next_to_iter_helper< T >::operator++ ( int )
inline

Member Data Documentation

◆ _curr

template<typename T>
next_type diplomat::next_to_iter_helper< T >::_curr

◆ _ptr

template<typename T>
std::shared_ptr<T> diplomat::next_to_iter_helper< T >::_ptr

The documentation for this struct was generated from the following file: