Iros
 
Loading...
Searching...
No Matches
di::Queue< Value, Con > Class Template Reference

#include <di/container/queue/queue.h>

Public Member Functions

 Queue ()=default
 
 Queue (Queue &&)=default
 
constexpr Queue (Con &&container)
 
 ~Queue ()=default
 
auto operator= (Queue &&) -> Queue &=default
 
constexpr auto front ()
 
constexpr auto front () const
 
constexpr auto back ()
 
constexpr auto back () const
 
constexpr auto empty () const -> bool
 
constexpr auto size () const
 
constexpr auto push (Value &value) -> decltype(auto) requires(!concepts::CopyConstructible< Value > &&!concepts::MoveConstructible< Value >)
 
constexpr auto push (Value const &value) -> decltype(auto) requires(concepts::CopyConstructible< Value >)
 
constexpr auto push (Value &&value) -> decltype(auto) requires(concepts::MoveConstructible< Value >)
 
template<typename... Args>
constexpr auto emplace (Args &&... args) -> decltype(auto) requires(
 
template<concepts::ContainerCompatible< Value > Other>
requires (requires { m_container.append_container(util::forward<Other>(m_container)); })
constexpr auto push_container (Other &&container)
 
constexpr auto pop ()
 
constexpr auto begin ()
 
constexpr auto end ()
 
constexpr auto base () const -> Con const &
 
constexpr void clear ()
 

Friends

template<concepts::InputContainer Other>
requires (concepts::ContainerCompatible<Other, Value>)
constexpr friend auto tag_invoke (types::Tag< util::create_in_place >, InPlaceType< Queue >, Other &&other)
 
constexpr friend auto tag_invoke (types::Tag< util::clone >, Queue const &self)
 

Constructor & Destructor Documentation

◆ Queue() [1/3]

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
di::container::Queue< Value, Con >::Queue ( )
default

◆ Queue() [2/3]

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
di::container::Queue< Value, Con >::Queue ( Queue< Value, Con > && )
default

◆ Queue() [3/3]

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
di::container::Queue< Value, Con >::Queue ( Con && container)
inlineexplicitconstexpr

◆ ~Queue()

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
di::container::Queue< Value, Con >::~Queue ( )
default

Member Function Documentation

◆ back() [1/2]

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::back ( )
inlineconstexpr

◆ back() [2/2]

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::back ( ) const
inlineconstexpr

◆ base()

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::base ( ) const -> Con const&
inlineconstexpr

◆ begin()

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::begin ( )
inlineconstexpr

◆ clear()

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
void di::container::Queue< Value, Con >::clear ( )
inlineconstexpr

◆ emplace()

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
template<typename... Args>
auto di::container::Queue< Value, Con >::emplace ( Args &&... args) -> decltype(auto) requires(
inlineconstexpr

◆ empty()

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::empty ( ) const -> bool
inlineconstexpr

◆ end()

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::end ( )
inlineconstexpr

◆ front() [1/2]

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::front ( )
inlineconstexpr

◆ front() [2/2]

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::front ( ) const
inlineconstexpr

◆ operator=()

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::operator= ( Queue< Value, Con > && ) -> Queue &=default
default

◆ pop()

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::pop ( )
inlineconstexpr

◆ push() [1/3]

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::push ( Value && value) -> decltype(auto) requires(concepts::MoveConstructible<Value>)
inlineconstexpr

◆ push() [2/3]

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::push ( Value & value) -> decltype(auto) requires(!concepts::CopyConstructible<Value> && !concepts::MoveConstructible<Value>)
inlineconstexpr

◆ push() [3/3]

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::push ( Value const & value) -> decltype(auto) requires(concepts::CopyConstructible<Value>)
inlineconstexpr

◆ push_container()

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
template<concepts::ContainerCompatible< Value > Other>
requires (requires { m_container.append_container(util::forward<Other>(m_container)); })
auto di::container::Queue< Value, Con >::push_container ( Other && container)
inlineconstexpr

◆ size()

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
auto di::container::Queue< Value, Con >::size ( ) const
inlineconstexpr

Friends And Related Symbol Documentation

◆ tag_invoke [1/2]

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
friend auto tag_invoke ( types::Tag< util::clone > ,
Queue< Value, Con > const & self )
friend

◆ tag_invoke [2/2]

template<typename Value, detail::QueueCompatible< Value > Con = container::Ring<Value>>
template<concepts::InputContainer Other>
requires (concepts::ContainerCompatible<Other, Value>)
friend auto tag_invoke ( types::Tag< util::create_in_place > ,
InPlaceType< Queue< Value, Con > > ,
Other && other )
friend

The documentation for this class was generated from the following file: