Iros
 
Loading...
Searching...
No Matches
ring_operations.h File Reference

Go to the source code of this file.

Namespaces

namespace  di
 
namespace  di::container
 
namespace  di::container::ring
 

Functions

constexpr auto di::container::ring::size (concepts::detail::ConstantRing auto &ring)
 
constexpr auto di::container::ring::size_bytes (concepts::detail::ConstantRing auto &ring)
 
constexpr auto di::container::ring::empty (concepts::detail::ConstantRing auto &ring) -> bool
 
constexpr auto di::container::ring::begin_pointer (concepts::detail::ConstantRing auto &ring) -> auto *
 
constexpr auto di::container::ring::end_pointer (concepts::detail::ConstantRing auto &ring) -> auto *
 
constexpr auto di::container::ring::head_pointer (concepts::detail::ConstantRing auto &ring) -> auto *
 
constexpr auto di::container::ring::tail_pointer (concepts::detail::ConstantRing auto &ring) -> auto *
 
template<concepts::detail::ConstantRing Ring, typename Value = meta::detail::RingValue<Ring>>
constexpr auto di::container::ring::begin (Ring &ring)
 
template<concepts::detail::ConstantRing Ring, typename Value = meta::detail::RingValue<Ring>>
constexpr auto di::container::ring::end (Ring &ring)
 
constexpr auto di::container::ring::lookup (concepts::detail::ConstantRing auto &ring, usize index) -> decltype(auto)
 
constexpr auto di::container::ring::at (concepts::detail::ConstantRing auto &ring, usize index)
 
constexpr auto di::container::ring::front (concepts::detail::ConstantRing auto &ring)
 
constexpr auto di::container::ring::back (concepts::detail::ConstantRing auto &ring)
 
template<concepts::detail::MutableRing Ring, typename Value = meta::detail::RingValue<Ring>>
requires (!concepts::Const<Ring>)
constexpr auto di::container::ring::iterator (Ring &, RingIterator< Value const > iterator)
 
template<concepts::detail::ConstantRing Ring>
requires (!concepts::Const<Ring>)
constexpr auto di::container::ring::iterator (Ring &ring, usize index)
 
template<concepts::detail::ConstantRing Ring>
constexpr auto di::container::ring::iterator (Ring const &ring, usize index)
 
constexpr void di::container::ring::clear (concepts::detail::MutableRing auto &ring)
 
template<concepts::detail::MutableRing Ring, typename R = meta::detail::RingAllocResult<Ring>>
constexpr auto di::container::ring::reserve (Ring &ring, usize capacity) -> R
 
template<concepts::detail::MutableRing Ring, typename... Args>
requires (concepts::ConstructibleFrom<meta::detail::RingValue<Ring>, Args...>)
constexpr auto di::container::ring::emplace_back (Ring &ring, Args &&... args) -> decltype(auto)
 
template<concepts::detail::MutableRing Ring, concepts::InputContainer Con, typename T = meta::detail::RingValue<Ring>, typename R = meta::detail::RingAllocResult<Ring>>
requires (concepts::ContainerCompatible<Con, T>)
constexpr auto di::container::ring::append_container (Ring &ring, Con &&container) -> R
 
constexpr auto di::container::ring::pop_back (concepts::detail::MutableRing auto &ring)
 
template<concepts::detail::MutableRing Ring, typename... Args>
requires (concepts::ConstructibleFrom<meta::detail::RingValue<Ring>, Args...>)
constexpr auto di::container::ring::emplace_front (Ring &ring, Args &&... args) -> decltype(auto)
 
template<concepts::detail::MutableRing Ring, concepts::InputContainer Con, typename T = meta::detail::RingValue<Ring>, typename R = meta::detail::RingAllocResult<Ring>>
requires (concepts::ContainerCompatible<Con, T>)
constexpr auto di::container::ring::prepend_container (Ring &ring, Con &&container) -> R
 
constexpr auto di::container::ring::pop_front (concepts::detail::MutableRing auto &ring)
 
template<concepts::detail::MutableRing Ring, typename T = meta::detail::RingValue<Ring>, typename... Args>
requires (concepts::ConstructibleFrom<meta::detail::RingValue<Ring>, Args...>)
constexpr auto di::container::ring::emplace (Ring &ring, RingIterator< T const > it, Args &&... args)
 
template<concepts::detail::MutableRing Ring, typename Value = meta::detail::RingValue<Ring>>
constexpr auto di::container::ring::erase (Ring &ring, RingIterator< Value const > first, RingIterator< Value const > last)
 
template<concepts::detail::MutableRing Ring, typename Value = meta::detail::RingValue<Ring>>
constexpr auto di::container::ring::erase (Ring &ring, RingIterator< Value const > citerator)
 
constexpr auto di::container::ring::make_contigous (concepts::detail::MutableRing auto &ring)
 
template<concepts::detail::MutableRing Ring, typename T = meta::detail::RingValue<Ring>>
requires (concepts::DefaultConstructible<T>)
constexpr auto di::container::ring::resize (Ring &ring, usize count)
 
template<concepts::detail::MutableRing Ring, typename T = meta::detail::RingValue<Ring>>
requires (concepts::CopyConstructible<T>)
constexpr auto di::container::ring::resize (Ring &ring, usize count, T const &value)