BOOST_STL_INTERFACES_STATIC_ASSERT_CONCEPT(type, concept_name)
BOOST_STL_INTERFACES_STATIC_ASSERT_ITERATOR_TRAITS(iter, category, concept, value_type, reference, pointer, difference_type)
namespace boost {
namespace stl_interfaces {
struct access;
template<typename Derived, typename IteratorConcept, typename ValueType,
typename Reference, typename Pointer, typename DifferenceType>
struct iterator_interface;
template<typename Derived, typename IteratorConcept, typename ValueType,
typename Reference, typename Pointer, typename DifferenceType>
struct iterator_interface;
template<typename T> struct proxy_arrow_result;
typedef iterator_interface< Derived, IteratorConcept, ValueType, Reference, proxy_arrow_result< Reference >, DifferenceType > proxy_iterator_interface;
template<typename IteratorInterface1, typename IteratorInterface2,
typename Enable = std::enable_if_t<!v1_dtl::ra_iter<IteratorInterface1>::value> >
constexpr auto operator==(IteratorInterface1, IteratorInterface2);
template<typename IteratorInterface1, typename IteratorInterface2>
constexpr auto operator!=(IteratorInterface1, IteratorInterface2);
template<typename IteratorInterface1, typename IteratorInterface2>
constexpr auto operator<(IteratorInterface1, IteratorInterface2);
template<typename IteratorInterface1, typename IteratorInterface2>
constexpr auto operator<=(IteratorInterface1, IteratorInterface2);
template<typename IteratorInterface1, typename IteratorInterface2>
constexpr auto operator>(IteratorInterface1, IteratorInterface2);
template<typename IteratorInterface1, typename IteratorInterface2>
constexpr auto operator>=(IteratorInterface1, IteratorInterface2);
namespace v1 {
template<typename Derived, typename IteratorConcept, typename ValueType,
typename Reference, typename Pointer, typename DifferenceType>
struct iterator_interface;
template<typename Derived, typename IteratorConcept, typename ValueType,
typename Reference, typename Pointer, typename DifferenceType>
struct iterator_interface;
typedef iterator_interface< Derived, IteratorConcept, ValueType, Reference, proxy_arrow_result< Reference >, DifferenceType > proxy_iterator_interface;
template<typename IteratorInterface1, typename IteratorInterface2,
typename Enable = std::enable_if_t<!v1_dtl::ra_iter<IteratorInterface1>::value> >
constexpr auto operator==(IteratorInterface1, IteratorInterface2);
template<typename IteratorInterface1, typename IteratorInterface2>
constexpr auto operator!=(IteratorInterface1, IteratorInterface2);
template<typename IteratorInterface1, typename IteratorInterface2>
constexpr auto operator<(IteratorInterface1, IteratorInterface2);
template<typename IteratorInterface1, typename IteratorInterface2>
constexpr auto operator<=(IteratorInterface1, IteratorInterface2);
template<typename IteratorInterface1, typename IteratorInterface2>
constexpr auto operator>(IteratorInterface1, IteratorInterface2);
template<typename IteratorInterface1, typename IteratorInterface2>
constexpr auto operator>=(IteratorInterface1, IteratorInterface2);
}
}
}
namespace boost {
namespace stl_interfaces {
template<typename Derived, element_layout Contiguity>
struct sequence_container_interface;
template<typename Derived, element_layout Contiguity>
struct sequence_container_interface;
template<typename ContainerInterface>
constexpr auto swap(ContainerInterface &, ContainerInterface &);
template<typename ContainerInterface>
constexpr auto
operator==(ContainerInterface const &, ContainerInterface const &);
template<typename ContainerInterface>
constexpr auto
operator!=(ContainerInterface const &, ContainerInterface const &);
template<typename ContainerInterface>
constexpr auto
operator<(ContainerInterface const &, ContainerInterface const &);
template<typename ContainerInterface>
constexpr auto
operator<=(ContainerInterface const &, ContainerInterface const &);
template<typename ContainerInterface>
constexpr auto
operator>(ContainerInterface const &, ContainerInterface const &);
template<typename ContainerInterface>
constexpr auto
operator>=(ContainerInterface const &, ContainerInterface const &);
namespace v1 {
template<typename Derived, element_layout Contiguity>
struct sequence_container_interface;
template<typename Derived, element_layout Contiguity>
struct sequence_container_interface;
template<typename ContainerInterface>
constexpr auto swap(ContainerInterface &, ContainerInterface &);
template<typename ContainerInterface>
constexpr auto
operator==(ContainerInterface const &, ContainerInterface const &);
template<typename ContainerInterface>
constexpr auto
operator!=(ContainerInterface const &, ContainerInterface const &);
template<typename ContainerInterface>
constexpr auto
operator<(ContainerInterface const &, ContainerInterface const &);
template<typename ContainerInterface>
constexpr auto
operator<=(ContainerInterface const &, ContainerInterface const &);
template<typename ContainerInterface>
constexpr auto
operator>(ContainerInterface const &, ContainerInterface const &);
template<typename ContainerInterface>
constexpr auto
operator>=(ContainerInterface const &, ContainerInterface const &);
}
}
}