![]() |
Home | Libraries | People | FAQ | More |
boost::stl_interfaces::sequence_container_interface
// In header: <boost/stl_interfaces/sequence_container_interface.hpp> template<typename Derived, element_layout Contiguity> struct sequence_container_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, 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(typename D::size_type(std::declval< D & >().end() - std::declval< D & >().begin())) size(); template<typename D = Derived> decltype(typename D::size_type(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> decltype((void) std::declval< D & >().emplace_front(x)) push_front(typename D::value_type const &); template<typename D = Derived> decltype((void) std::declval< D & >().emplace_front(std::move(x))) push_front(typename D::value_type &&); template<typename D = Derived> decltype(std::declval< D & >().emplace_front(std::declval< typename D::value_type & >()),(void) std::declval< D & >().erase(std::declval< D & >().begin())) pop_front() noexcept; 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((void) std::declval< D & >().emplace_back(x)) push_back(typename D::value_type const &); template<typename D = Derived> decltype((void) std::declval< D & >().emplace_back(std::move(x))) push_back(typename D::value_type &&); template<typename D = Derived> decltype(std::declval< D & >().emplace_back(std::declval< typename D::value_type >()),(void) std::declval< D & >().erase(std::prev(std::declval< D & >().end()))) pop_back() noexcept; template<typename D = Derived> decltype(std::declval< D & >().begin()[n]) operator[](typename D::size_type); template<typename D = Derived> decltype(std::declval< D const & >().begin()[n]) operator[](typename D::size_type) const; template<typename D = Derived> decltype(std::declval< D & >().size(), std::declval< D & >()[i]) at(typename D::size_type); template<typename D = Derived> decltype(std::declval< D const & >().size(), std::declval< D const & >()[i]) at(typename D::size_type) const; template<typename D = Derived, typename Iter = typename D::const_iterator> Iter begin() const; template<typename D = Derived, typename Iter = typename D::const_iterator> Iter end() const; template<typename D = Derived> decltype(std::declval< D const & >().begin()) cbegin() const; template<typename D = Derived> decltype(std::declval< D const & >().end()) cend() const; template<typename D = Derived, typename Enable = std::enable_if_t<v1_dtl::common_range<D>::value> > auto rbegin(); template<typename D = Derived, typename Enable = std::enable_if_t<v1_dtl::common_range<D>::value> > auto rend(); template<typename D = Derived> auto rbegin() const; template<typename D = Derived> auto rend() const; template<typename D = Derived> decltype(std::declval< D const & >().rbegin()) crbegin() const; template<typename D = Derived> decltype(std::declval< D const & >().rend()) crend() const; template<typename D = Derived> decltype(std::declval< D & >().emplace(pos, x)) insert(typename D::const_iterator, typename D::value_type const &); template<typename D = Derived> decltype(std::declval< D & >().emplace(pos, std::move(x))) insert(typename D::const_iterator, typename D::value_type &&); template<typename D = Derived> auto insert(typename D::const_iterator, typename D::size_type, typename D::value_type const &); template<typename D = Derived> decltype(std::declval< D & >().insert(pos, il.begin(), il.end())) insert(typename D::const_iterator, std::initializer_list< typename D::value_type >); template<typename D = Derived> decltype(std::declval< D & >().erase(pos, std::next(pos))) erase(typename D::const_iterator) noexcept; template<typename InputIterator, typename D = Derived, typename Enable = std::enable_if_t<v1_dtl::in_iter<InputIterator>::value> > decltype(std::declval< D & >().erase(std::declval< D & >().begin(), std::declval< D & >().end()),(void) std::declval< D & >().insert(std::declval< D & >().begin(), first, last)) assign(InputIterator, InputIterator); template<typename D = Derived> unspecified assign(typename D::size_type, typename D::value_type const &); template<typename D = Derived> decltype((void) std::declval< D & >().assign(il.begin(), il.end())) assign(std::initializer_list< typename D::value_type >); template<typename D = Derived> decltype(std::declval< D & >().assign(il.begin(), il.end()), std::declval< D & >()) operator=(std::initializer_list< typename D::value_type >); template<typename D = Derived> decltype((void) std::declval< D & >().erase(std::declval< D & >().begin(), std::declval< D & >().end())) clear() noexcept; };
sequence_container_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, 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(typename D::size_type(std::declval< D & >().end() - std::declval< D & >().begin())) size();
template<typename D = Derived> decltype(typename D::size_type(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> decltype((void) std::declval< D & >().emplace_front(x)) push_front(typename D::value_type const & x);
template<typename D = Derived> decltype((void) std::declval< D & >().emplace_front(std::move(x))) push_front(typename D::value_type && x);
template<typename D = Derived> decltype(std::declval< D & >().emplace_front(std::declval< typename D::value_type & >()),(void) std::declval< D & >().erase(std::declval< D & >().begin())) pop_front() noexcept;
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((void) std::declval< D & >().emplace_back(x)) push_back(typename D::value_type const & x);
template<typename D = Derived> decltype((void) std::declval< D & >().emplace_back(std::move(x))) push_back(typename D::value_type && x);
template<typename D = Derived> decltype(std::declval< D & >().emplace_back(std::declval< typename D::value_type >()),(void) std::declval< D & >().erase(std::prev(std::declval< D & >().end()))) pop_back() noexcept;
template<typename D = Derived> decltype(std::declval< D & >().begin()[n]) operator[](typename D::size_type n);
template<typename D = Derived> decltype(std::declval< D const & >().begin()[n]) operator[](typename D::size_type n) const;
template<typename D = Derived> decltype(std::declval< D & >().size(), std::declval< D & >()[i]) at(typename D::size_type i);
template<typename D = Derived> decltype(std::declval< D const & >().size(), std::declval< D const & >()[i]) at(typename D::size_type i) const;
template<typename D = Derived, typename Iter = typename D::const_iterator> Iter begin() const;
template<typename D = Derived, typename Iter = typename D::const_iterator> Iter end() const;
template<typename D = Derived> decltype(std::declval< D const & >().begin()) cbegin() const;
template<typename D = Derived> decltype(std::declval< D const & >().end()) cend() const;
template<typename D = Derived, typename Enable = std::enable_if_t<v1_dtl::common_range<D>::value> > auto rbegin();
template<typename D = Derived, typename Enable = std::enable_if_t<v1_dtl::common_range<D>::value> > auto rend();
template<typename D = Derived> auto rbegin() const;
template<typename D = Derived> auto rend() const;
template<typename D = Derived> decltype(std::declval< D const & >().rbegin()) crbegin() const;
template<typename D = Derived> decltype(std::declval< D const & >().rend()) crend() const;
template<typename D = Derived> decltype(std::declval< D & >().emplace(pos, x)) insert(typename D::const_iterator pos, typename D::value_type const & x);
template<typename D = Derived> decltype(std::declval< D & >().emplace(pos, std::move(x))) insert(typename D::const_iterator pos, typename D::value_type && x);
template<typename D = Derived> auto insert(typename D::const_iterator pos, typename D::size_type n, typename D::value_type const & x);
template<typename D = Derived> decltype(std::declval< D & >().insert(pos, il.begin(), il.end())) insert(typename D::const_iterator pos, std::initializer_list< typename D::value_type > il);
template<typename D = Derived> decltype(std::declval< D & >().erase(pos, std::next(pos))) erase(typename D::const_iterator pos) noexcept;
template<typename InputIterator, typename D = Derived, typename Enable = std::enable_if_t<v1_dtl::in_iter<InputIterator>::value> > decltype(std::declval< D & >().erase(std::declval< D & >().begin(), std::declval< D & >().end()),(void) std::declval< D & >().insert(std::declval< D & >().begin(), first, last)) assign(InputIterator first, InputIterator last);
template<typename D = Derived> unspecified assign(typename D::size_type n, typename D::value_type const & x);
template<typename D = Derived> decltype((void) std::declval< D & >().assign(il.begin(), il.end())) assign(std::initializer_list< typename D::value_type > il);
template<typename D = Derived> decltype(std::declval< D & >().assign(il.begin(), il.end()), std::declval< D & >()) operator=(std::initializer_list< typename D::value_type > il);
template<typename D = Derived> decltype((void) std::declval< D & >().erase(std::declval< D & >().begin(), std::declval< D & >().end())) clear() noexcept;