15#include <AUI/Traits/containers.h>
22template <
class StoredType>
23class AQueue :
public std::queue<StoredType>
25 using super = std::queue<StoredType>;
55 super::push(std::move(rhs));
62 bool contains(
const StoredType& value)
const noexcept {
70 template<
typename OtherContainer>
81 template<
typename Factory>
87 auto v = std::move(super::front());
A std::queue with AUI extensions.
Definition: AQueue.h:24
void removeFirst(const StoredType &item) noexcept
Definition: AQueue.h:40
StoredType popOrGenerate(Factory factory) noexcept(noexcept(factory()))
Pops the element and returns it. If queue is empty, the result of factory() returned....
Definition: AQueue.h:83
void removeAll(const StoredType &item) noexcept
Definition: AQueue.h:31
bool contains(const StoredType &value) const noexcept
Definition: AQueue.h:62
bool isSubsetOf(const OtherContainer &c) const noexcept
Definition: AQueue.h:71
bool is_subset(LContainer &l, RContainer &r) noexcept
Definition: containers.h:233
bool contains(const Container &c, const typename Container::const_reference value) noexcept
Definition: containers.h:153
AOptional< std::size_t > remove_first(Container &container, typename Container::const_reference value) noexcept
Removes first occurrence of value.
Definition: containers.h:200
void remove_all(Container &container, typename Container::const_reference value) noexcept
Removes all occurrences of value.
Definition: containers.h:172