namespaceboost{//// Single Pass Range metafunctions//template<classT,classEnabler=void>structrange_iterator;template<classT>structrange_value;template<classT>structrange_reference;template<classT>structrange_pointer;template<classT>structrange_category;//// Forward Range metafunctions//template<classT>structrange_difference;//// Bidirectional Range metafunctions//template<classT>structrange_reverse_iterator;//// Single Pass Range functions//template<classT>typenamerange_iterator<T>::typebegin(T&r);template<classT>typenamerange_iterator<constT>::typebegin(constT&r);template<classT>typenamerange_iterator<T>::typeend(T&r);template<classT>typenamerange_iterator<constT>::typeend(constT&r);template<classT>boolempty(constT&r);//// Forward Range functions//template<classT>typenamerange_difference<T>::typedistance(constT&r);template<classT>typenamerange_size<T>::typesize(constT&r);//// Bidirectional Range functions//template<classT>typenamerange_reverse_iterator<T>::typerbegin(T&r);template<classT>typenamerange_reverse_iterator<constT>::typerbegin(constT&r);template<classT>typenamerange_reverse_iterator<T>::typerend(T&r);template<classT>typenamerange_reverse_iterator<constT>::typerend(constT&r);//// Special const Range functions//template<classT>typenamerange_iterator<constT>::typeconst_begin(constT&r);template<classT>typenamerange_iterator<constT>::typeconst_end(constT&r);template<classT>typenamerange_reverse_iterator<constT>::typeconst_rbegin(constT&r);template<classT>typenamerange_reverse_iterator<constT>::typeconst_rend(constT&r);//// String utilities//template<classT>iterator_range<...seebelow...>as_literal(T&r);template<classT>iterator_range<...seebelow...>as_literal(constT&r);template<classT>iterator_range<typenamerange_iterator<T>::type>as_array(T&r);template<classT>iterator_range<typenamerange_iterator<constT>::type>as_array(constT&r);}// namespace 'boost'
Статья Synopsis раздела Chapter 1. Range 2.0 Range concept implementation может быть полезна для разработчиков на c++ и boost.