Headers
false_typeRangevoid_t< decltype(--std::declval< sentinel_t< Range > & >())>true_typeRangevoid_t< decltype(std::declval< Range & >().begin())>decltype(std::declval< Range & >().begin()) 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 constexpr auto constexpr autodifference_type constexpr auto constexpr auto constexpr autoint constexpr autodifference_type constexpr autodifference_type constexpr auto constexpr auto constexpr autoint constexpr D &difference_type constexpr autoD false_typeIteratorDifferenceTypevoid_t< decltype(std::declval< Iterator & >()+=std::declval< DifferenceType >())>true_typefalse_typeIteratorvoid_t< typename Iterator::iterator_concept >std::integral_constant< bool, std::is_base_of< std::random_access_iterator_tag, Iterator::iterator_concept >::value > voiditerator_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 autoIteratorInterface1IteratorInterface2Implementation 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 autoIteratorInterface1IteratorInterface2Implementation of operator!=() for all iterators derived from iterator_interface. constexpr autoIteratorInterface1IteratorInterface2Implementation of operator<() for all iterators derived from iterator_interface that have an iterator category derived from std::random_access_iterator_tag. constexpr autoIteratorInterface1IteratorInterface2Implementation of operator<=() for all iterators derived from iterator_interface that have an iterator category derived from std::random_access_iterator_tag. constexpr autoIteratorInterface1IteratorInterface2Implementation of operator>() for all iterators derived from iterator_interface that have an iterator category derived from std::random_access_iterator_tag. constexpr autoIteratorInterface1IteratorInterface2Implementation 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 structA 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 reverse_iterator< BidiIter2 > const & constexpr BidiIter & constexpr BidiIter const & constexpr autoIterIterstd::random_access_iterator_tag constexpr autoIterIterTag constexpr IterIter constexpr voidIter &Offsetstd::random_access_iterator_tag constexpr voidIter &OffsetTag constexpr autoreverse_iterator< BidiIter >reverse_iterator< BidiIter > constexpr autoreverse_iterator< BidiIter1 >reverse_iterator< BidiIter2 > autoBidiIterMakes 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 > autoBidiIterMakes 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.
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 constexpr auto constexpr auto constexpr auto constexpr auto constexpr auto constexpr auto constexpr auto constexpr autotypename D::value_type const & constexpr autotypename D::value_type && constexpr auto constexpr auto constexpr auto constexpr autotypename D::value_type const & constexpr autotypename D::value_type && constexpr auto constexpr autotypename D::size_type constexpr autotypename D::size_type constexpr autotypename D::size_type constexpr autotypename D::size_type constexpr Iter constexpr Iter constexpr auto constexpr auto constexpr auto constexpr auto constexpr auto constexpr auto constexpr auto constexpr auto constexpr autotypename D::const_iteratortypename D::value_type const & constexpr autotypename D::const_iteratortypename D::value_type && constexpr autotypename D::const_iteratortypename D::size_typetypename D::value_type const & constexpr autotypename D::const_iteratorstd::initializer_list< typename D::value_type > constexpr autotypename D::const_iterator constexpr autoInputIteratorInputIterator constexpr autotypename D::size_typetypename D::value_type const & constexpr autostd::initializer_list< typename D::value_type > constexpr auto constexpr autostd::initializer_list< typename D::value_type > 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 > voidsequence_container_interface< D, Contiguity > const & constexpr autoContainerInterface &ContainerInterface &Implementation of free function swap() for all containers derived from sequence_container_interface. constexpr autoContainerInterface const &ContainerInterface const &Implementation of operator==() for all containers derived from sequence_container_interface. constexpr autoContainerInterface const &ContainerInterface const &Implementation of operator!=() for all containers derived from sequence_container_interface. constexpr autoContainerInterface const &ContainerInterface const &Implementation of operator<() for all containers derived from sequence_container_interface. constexpr autoContainerInterface const &ContainerInterface const &Implementation of operator<=() for all containers derived from sequence_container_interface. constexpr autoContainerInterface const &ContainerInterface const &Implementation of operator>() for all containers derived from sequence_container_interface. constexpr autoContainerInterface const &ContainerInterface const &Implementation of operator>=() for all containers derived from sequence_container_interface.
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 constexpr auto constexpr constexpr constexpr auto constexpr auto constexpr auto constexpr auto constexpr auto constexpr auto constexpr auto constexpr auto constexpr autov1_dtl::range_difference_t< D > constexpr autov1_dtl::range_difference_t< D > voidview_interface< D, Contiguity > const & constexpr autoViewInterfaceViewInterfaceImplementation 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 >