![]() |
Home | Libraries | People | FAQ | More |
boost::stl_interfaces::view_interface
// In header: <boost/stl_interfaces/view_interface.hpp> template<typename Derived, element_layout Contiguity> struct view_interface { // public member functions template<typename D = Derived> decltype(std::declval< D & >().begin()==std::declval< D & >().end()) empty(); template<typename D = Derived> decltype(std::declval< D const & >().begin()==std::declval< D const & >().end()) empty() const; template<typename D = Derived, typename R = decltype(std::declval<D &>().empty())> explicit constexpr operator bool(); template<typename D = Derived, typename R = decltype(std::declval<D const &>().empty())> explicit constexpr operator bool() const; template<typename D = Derived, element_layout C = Contiguity, typename Enable = std::enable_if_t<C == element_layout::contiguous> > decltype(std::addressof(*std::declval< D & >().begin())) data(); template<typename D = Derived, element_layout C = Contiguity, typename Enable = std::enable_if_t<C == element_layout::contiguous> > decltype(std::addressof(*std::declval< D const & >().begin())) data() const; template<typename D = Derived> decltype(std::declval< D & >().end() - std::declval< D & >().begin()) size(); template<typename D = Derived> decltype(std::declval< D const & >().end() - std::declval< D const & >().begin()) size() const; template<typename D = Derived> decltype(*std::declval< D & >().begin()) front(); template<typename D = Derived> decltype(*std::declval< D const & >().begin()) front() const; template<typename D = Derived, typename Enable = std::enable_if_t< v1_dtl::decrementable_sentinel<D>::value && v1_dtl::common_range<D>::value> > decltype(*std::prev(std::declval< D & >().end())) back(); template<typename D = Derived, typename Enable = std::enable_if_t< v1_dtl::decrementable_sentinel<D>::value && v1_dtl::common_range<D>::value> > decltype(*std::prev(std::declval< D const & >().end())) back() const; template<typename D = Derived> decltype(std::declval< D & >().begin()[n]) operator[](v1_dtl::range_difference_t< D >); template<typename D = Derived> decltype(std::declval< D const & >().begin()[n]) operator[](v1_dtl::range_difference_t< D >) const; };
view_interface
public member functionstemplate<typename D = Derived> decltype(std::declval< D & >().begin()==std::declval< D & >().end()) empty();
template<typename D = Derived> decltype(std::declval< D const & >().begin()==std::declval< D const & >().end()) empty() const;
template<typename D = Derived, typename R = decltype(std::declval<D &>().empty())> explicit constexpr operator bool();
template<typename D = Derived, typename R = decltype(std::declval<D const &>().empty())> explicit constexpr operator bool() const;
template<typename D = Derived, element_layout C = Contiguity, typename Enable = std::enable_if_t<C == element_layout::contiguous> > decltype(std::addressof(*std::declval< D & >().begin())) data();
template<typename D = Derived, element_layout C = Contiguity, typename Enable = std::enable_if_t<C == element_layout::contiguous> > decltype(std::addressof(*std::declval< D const & >().begin())) data() const;
template<typename D = Derived> decltype(std::declval< D & >().end() - std::declval< D & >().begin()) size();
template<typename D = Derived> decltype(std::declval< D const & >().end() - std::declval< D const & >().begin()) size() const;
template<typename D = Derived> decltype(*std::declval< D & >().begin()) front();
template<typename D = Derived> decltype(*std::declval< D const & >().begin()) front() const;
template<typename D = Derived, typename Enable = std::enable_if_t< v1_dtl::decrementable_sentinel<D>::value && v1_dtl::common_range<D>::value> > decltype(*std::prev(std::declval< D & >().end())) back();
template<typename D = Derived, typename Enable = std::enable_if_t< v1_dtl::decrementable_sentinel<D>::value && v1_dtl::common_range<D>::value> > decltype(*std::prev(std::declval< D const & >().end())) back() const;
template<typename D = Derived> decltype(std::declval< D & >().begin()[n]) operator[](v1_dtl::range_difference_t< D > n);
template<typename D = Derived> decltype(std::declval< D const & >().begin()[n]) operator[](v1_dtl::range_difference_t< D > n) const;