1 #ifndef SUBORDINATION_BASE_QUEUE_PUSHER_HH 2 #define SUBORDINATION_BASE_QUEUE_PUSHER_HH 6 #include <subordination/base/container_traits.hh> 13 queue_push_iterator_base;
26 template <
class Container,
class Traits = queue_traits<Container>>
30 typedef typename Container::value_type cont_value_type;
34 using typename base_type::iterator_category;
35 using typename base_type::value_type;
36 using typename base_type::pointer;
37 using typename base_type::reference;
38 using typename base_type::difference_type;
49 Container& _container;
60 traits_type::push(this->_container, rhs);
67 traits_type::push(this->_container, std::move(rhs));
97 inline queue_push_iterator<C>
98 queue_pusher(C& rhs) {
99 return queue_push_iterator<C>(rhs);
107 inline queue_push_iterator<C,priority_queue_traits<C>>
108 priority_queue_pusher(C& rhs) {
109 return queue_push_iterator<C,priority_queue_traits<C>>(rhs);
117 inline queue_push_iterator<C,deque_traits<C>>
118 deque_pusher(C& rhs) {
119 return queue_push_iterator<C,deque_traits<C>>(rhs);
124 #endif // vim:filetype=cpp queue_push_iterator & operator *() noexcept
Does nothing.
Definition: queue_pusher.hh:73
queue_push_iterator & operator=(const object_type &rhs)
Push element to the container.
Definition: queue_pusher.hh:59
queue_push_iterator & operator++() noexcept
Does nothing.
Definition: queue_pusher.hh:79
Container container_type
Container type.
Definition: queue_pusher.hh:42
Output iterator that inserts element to the container on assignment.
Definition: queue_pusher.hh:27
queue_push_iterator operator++(int) noexcept
Does nothing.
Definition: queue_pusher.hh:85
queue_push_iterator & operator=(const object_type &&rhs)
Move element to the container.
Definition: queue_pusher.hh:66
queue_push_iterator(Container &x) noexcept
Construct queue push iterator from container x.
Definition: queue_pusher.hh:55
Traits traits_type
Container traits type.
Definition: queue_pusher.hh:44
cont_value_type object_type
Container element type.
Definition: queue_pusher.hh:46