Headers
void
false_type
Rangevoid_t< decltype(--std::declval< sentinel_t< Range > & >())>true_type
void
Rangevoid_t< decltype(std::declval< Range & >().begin())>decltype(std::declval< Range & >().begin())
void
Rangevoid_t< decltype(std::declval< Range & >().end())>decltype(std::declval< Range & >().end())
void
typename std::iterator_traits< Iter >::difference_type
typename iterator< Range >::type
typename sentinel< Range >::type
iter_difference_t< iterator_t< Range > >
std::is_same< iterator_t< Range >, sentinel_t< Range > >
= false= trueAn enumeration used to indicate whether the underlying data have a contiguous or discontiguous layout when instantiating view_interface and sequence_container_interface.
A type for granting access to the private members of an iterator derived from iterator_interface.
The return type of operator->() in a proxy iterator.This template is used as the default Pointer template parameter in the proxy_iterator_interface template alias. Note that the use of this template implies a copy or move of the underlying object of type T.
constexpr T const *
constexpr T *
T const &
T &&
A CRTP template that one may derive from to make defining iterators easier.The template parameter D for iterator_interface may be an incomplete type. Before any member of the resulting specialization of iterator_interface other than special member functions is referenced, D shall be complete, and model std::derived_from<iterator_interface<D>>. IteratorConcept
unspecified
std::remove_const_t< ValueType >
Reference
unspecified
DifferenceType
constexpr auto
Derived
constexpr auto
Derived
constexpr auto
Derived
difference_type
constexpr auto
Derived
std::enable_if_t<!v1_dtl::plus_eq<D, difference_type>::value>
constexpr auto
Derived
constexpr auto
Derived
int
constexpr auto
Derived
difference_type
constexpr auto
Derived
difference_type
constexpr auto
Derived
std::enable_if_t<!v1_dtl::plus_eq<D, difference_type>::value>
constexpr auto
Derived
constexpr auto
Derived
int
constexpr D &
Derived
difference_type
constexpr auto
Derived
D
void
false_type
IteratorDifferenceTypevoid_t< decltype(std::declval< Iterator & >()+=std::declval< DifferenceType >())>true_type
void
false_type
Iteratorvoid_t< typename Iterator::iterator_concept >std::integral_constant< bool, std::is_base_of< std::random_access_iterator_tag, Iterator::iterator_concept >::value >
void
iterator_interface< D, IteratorConcept, ValueType, Reference, Pointer, DifferenceType > const &
A template alias useful for defining proxy iterators. See Also:iterator_interface.
iterator_interface< Derived, IteratorConcept, ValueType, Reference, proxy_arrow_result< Reference >, DifferenceType >
constexpr auto
std::enable_if_t<!v1_dtl::ra_iter<IteratorInterface1>::value>
IteratorInterface1IteratorInterface2Implementation of operator==(), implemented in terms of the iterator underlying IteratorInterface, for all iterators derived from iterator_interface, except those with an iterator category derived from std::random_access_iterator_tag.Implementation of operator==() for all iterators derived from iterator_interface that have an iterator category derived from std::random_access_iterator_tag.
constexpr auto
IteratorInterface1IteratorInterface2Implementation of operator!=() for all iterators derived from iterator_interface.
constexpr auto
IteratorInterface1IteratorInterface2Implementation of operator<() for all iterators derived from iterator_interface that have an iterator category derived from std::random_access_iterator_tag.
constexpr auto
IteratorInterface1IteratorInterface2Implementation of operator<=() for all iterators derived from iterator_interface that have an iterator category derived from std::random_access_iterator_tag.
constexpr auto
IteratorInterface1IteratorInterface2Implementation of operator>() for all iterators derived from iterator_interface that have an iterator category derived from std::random_access_iterator_tag.
constexpr auto
IteratorInterface1IteratorInterface2Implementation of operator>=() for all iterators derived from iterator_interface that have an iterator category derived from std::random_access_iterator_tag.
static_asserts that type type models concept concept_name. This is useful for checking that an iterator, view, etc. that you write using one of the *_interface templates models the right C++ concept.For example: BOOST_STL_INTERFACES_STATIC_ASSERT_CONCEPT(my_iter, std::input_iterator).This macro expands to nothing when __cpp_lib_concepts is not defined.
static_asserts that the types of all typedefs in std::iterator_traits<iter> match the remaining macro parameters. This is useful for checking that an iterator you write using iterator_interface has the correct iterator traits.For example: BOOST_STL_INTERFACES_STATIC_ASSERT_ITERATOR_TRAITS(my_iter, std::input_iterator_tag, std::input_iterator_tag, int, int &, int *, std::ptrdiff_t).This macro ignores the concept parameter when __cpp_lib_concepts is not defined.
boost::stl_interfaces::v1::iterator_interface< reverse_iterator< BidiIter >, std::iterator_traits< BidiIter >::iterator_category, std::iterator_traits< BidiIter >::value_type, std::iterator_traits< BidiIter >::reference, std::iterator_traits< BidiIter >::pointer, std::iterator_traits< BidiIter >::difference_type >This type is very similar to the C++20 version of std::reverse_iterator; it is constexpr-, noexcept-, and proxy-friendly.
friend struct
A template alias for std::reverse_iterator. This only exists to make migration from Boost.STLInterfaces to C++20 easier; switch to the one in std as soon as you can.
constexpr std::iterator_traits< BidiIter >::reference
constexpr reverse_iterator &typename std::iterator_traits< BidiIter >::difference_type
constexpr BidiIter
BidiIter
std::enable_if_t< std::is_convertible<BidiIter2, BidiIter>::value>
reverse_iterator< BidiIter2 > const &
constexpr BidiIter &
constexpr BidiIter const &
constexpr auto
IterIterstd::random_access_iterator_tag
constexpr auto
IterIterTag
constexpr Iter
Iter
constexpr void
Iter &Offsetstd::random_access_iterator_tag
constexpr void
Iter &OffsetTag
constexpr auto
reverse_iterator< BidiIter >reverse_iterator< BidiIter >
constexpr auto
reverse_iterator< BidiIter1 >reverse_iterator< BidiIter2 >
auto
BidiIterMakes a reverse_iterator<BidiIter> from an iterator of type Bidiiter.
A template alias for std::reverse_iterator. This only exists to make migration from Boost.STLInterfaces to C++20 easier; switch to the one in std as soon as you can. std::reverse_iterator< BidiIter >
auto
BidiIterMakes a reverse_iterator<BidiIter> from an iterator of type Bidiiter. This only exists to make migration from Boost.STLInterfaces to C++20 easier; switch to the one in std as soon as you can.
element_layout
A CRTP template that one may derive from to make it easier to define container types.The template parameter D for sequence_container_interface may be an incomplete type. Before any member of the resulting specialization of sequence_container_interface other than special member functions is referenced, D shall be complete; shall model std::derived_from<sequence_container_interface<D>>, std::semiregular, and std::forward_range; and shall contain all the nested types required in Table 72: Container requirements and, for those whose iterator nested type models std::bidirectinal_iterator, those in Table 73: Reversible container requirements.For an object d of type D, a call to std::ranges::begin(d) sxhall not mutate any data members of d, and d's destructor shall end the lifetimes of the objects in [std::ranges::begin(d), std::ranges::end(d)).
constexpr auto
Derived
constexpr auto
Derived
constexpr auto
Derived
element_layoutContiguity
std::enable_if_t<C == element_layout::contiguous>
constexpr auto
Derived
element_layoutContiguity
std::enable_if_t<C == element_layout::contiguous>
constexpr auto
Derived
constexpr auto
Derived
constexpr auto
Derived
constexpr auto
Derived
constexpr auto
Derived
typename D::value_type const &
constexpr auto
Derived
typename D::value_type &&
constexpr auto
Derived
constexpr auto
Derived
std::enable_if_t< v1_dtl::decrementable_sentinel<D>::value && v1_dtl::common_range<D>::value>
constexpr auto
Derived
std::enable_if_t< v1_dtl::decrementable_sentinel<D>::value && v1_dtl::common_range<D>::value>
constexpr auto
Derived
typename D::value_type const &
constexpr auto
Derived
typename D::value_type &&
constexpr auto
Derived
constexpr auto
Derived
typename D::size_type
constexpr auto
Derived
typename D::size_type
constexpr auto
Derived
typename D::size_type
constexpr auto
Derived
typename D::size_type
constexpr Iter
Derived
typename D::const_iterator
constexpr Iter
Derived
typename D::const_iterator
constexpr auto
Derived
constexpr auto
Derived
constexpr auto
Derived
std::enable_if_t<v1_dtl::common_range<D>::value>
constexpr auto
Derived
std::enable_if_t<v1_dtl::common_range<D>::value>
constexpr auto
Derived
constexpr auto
Derived
constexpr auto
Derived
constexpr auto
Derived
constexpr auto
Derived
typename D::const_iteratortypename D::value_type const &
constexpr auto
Derived
typename D::const_iteratortypename D::value_type &&
constexpr auto
Derived
typename D::const_iteratortypename D::size_typetypename D::value_type const &
constexpr auto
Derived
typename D::const_iteratorstd::initializer_list< typename D::value_type >
constexpr auto
Derived
typename D::const_iterator
constexpr auto
Derived
std::enable_if_t<v1_dtl::in_iter<InputIterator>::value>
InputIteratorInputIterator
constexpr auto
Derived
typename D::size_typetypename D::value_type const &
constexpr auto
Derived
std::initializer_list< typename D::value_type >
constexpr auto
Derived
constexpr auto
Derived
std::initializer_list< typename D::value_type >
void
constexpr voidD &
Dvoid_t< decltype(std::declval< D >().clear())>
constexpr voidD &
std::is_convertible< typename std::iterator_traits< Iter >::iterator_category, std::input_iterator_tag >
void
element_layout
sequence_container_interface< D, Contiguity > const &
constexpr auto
ContainerInterface &ContainerInterface &Implementation of free function swap() for all containers derived from sequence_container_interface.
constexpr auto
ContainerInterface const &ContainerInterface const &Implementation of operator==() for all containers derived from sequence_container_interface.
constexpr auto
ContainerInterface const &ContainerInterface const &Implementation of operator!=() for all containers derived from sequence_container_interface.
constexpr auto
ContainerInterface const &ContainerInterface const &Implementation of operator<() for all containers derived from sequence_container_interface.
constexpr auto
ContainerInterface const &ContainerInterface const &Implementation of operator<=() for all containers derived from sequence_container_interface.
constexpr auto
ContainerInterface const &ContainerInterface const &Implementation of operator>() for all containers derived from sequence_container_interface.
constexpr auto
ContainerInterface const &ContainerInterface const &Implementation of operator>=() for all containers derived from sequence_container_interface.
element_layout
A CRTP template that one may derive from to make it easier to define std::ranges::view-like types with a container-like interface. This is a pre-C++20 version of C++20's view_interface (see [view.interface] in the C++ standard).The template parameter D for view_interface may be an incomplete type. Before any member of the resulting specialization of view_interface other than special member functions is referenced, D shall be complete, and model both std::derived_from<view_interface<D>> and std::view.
constexpr auto
Derived
constexpr auto
Derived
constexpr
Derived
decltype(std::declval<D &>().empty())
constexpr
Derived
decltype(std::declval<D const &>().empty())
constexpr auto
Derived
element_layoutContiguity
std::enable_if_t<C == element_layout::contiguous>
constexpr auto
Derived
element_layoutContiguity
std::enable_if_t<C == element_layout::contiguous>
constexpr auto
Derived
constexpr auto
Derived
constexpr auto
Derived
constexpr auto
Derived
constexpr auto
Derived
std::enable_if_t< v1_dtl::decrementable_sentinel<D>::value && v1_dtl::common_range<D>::value>
constexpr auto
Derived
std::enable_if_t< v1_dtl::decrementable_sentinel<D>::value && v1_dtl::common_range<D>::value>
constexpr auto
Derived
v1_dtl::range_difference_t< D >
constexpr auto
Derived
v1_dtl::range_difference_t< D >
void
element_layout
view_interface< D, Contiguity > const &
constexpr auto
ViewInterfaceViewInterfaceImplementation of operator!=() for all views derived from view_interface.
A template alias for std::view_interface. This only exists to make migration from Boost.STLInterfaces to C++20 easier; switch to the one in std as soon as you can. std::ranges::view_interface< D >