Iros
 
Loading...
Searching...
No Matches
di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi > Class Template Reference

#include <di/container/associative/set_interface.h>

Public Member Functions

constexpr auto empty () const -> bool
 
constexpr void clear ()
 
constexpr auto insert (Value const &value)
 
constexpr auto insert (Value &&value)
 
template<typename U>
requires (valid<U> && concepts::CreatableFrom<Value, U>)
constexpr auto insert (U &&value)
 
constexpr auto insert (ConstIterator hint, Value const &value)
 
constexpr auto insert (ConstIterator hint, Value &&value)
 
template<typename U>
requires (valid<U> && concepts::CreatableFrom<Value, U>)
constexpr auto insert (ConstIterator hint, U &&value)
 
template<typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...>)
constexpr auto emplace (Args &&... args)
 
template<typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...>)
constexpr auto emplace_hint (ConstIterator hint, Args &&... args)
 
template<concepts::ContainerCompatible< Value > Con>
constexpr auto insert_container (Con &&container)
 
template<concepts::ContainerCompatible< Value > Con>
constexpr void insert_container (ConstIterator hint, Con &&container)
 
constexpr auto merge (Self &self)
 
constexpr auto merge (Self &&self)
 
constexpr auto erase (Iterator position)
 
constexpr auto erase (Iterator first, Iterator last) -> Iterator
 
constexpr auto erase (Value const &needle) -> size_t
 
template<typename U>
requires (valid<U>)
constexpr auto erase (U &&needle) -> size_t
 
constexpr auto front () -> Optional< Value & >
 
constexpr auto front () const -> Optional< Value const & >
 
constexpr auto back () -> Optional< Value & >
 
constexpr auto back () const -> Optional< Value const & >
 
constexpr auto at (Value const &needle) -> Optional< Value & >
 
constexpr auto at (Value const &needle) const -> Optional< Value const & >
 
template<typename U>
requires (valid<U>)
constexpr auto at (U &&needle) -> Optional< Value & >
 
template<typename U>
requires (valid<U>)
constexpr auto at (U &&needle) const -> Optional< Value const & >
 
constexpr auto find (Value const &needle) -> Iterator
 
constexpr auto find (Value const &needle) const -> ConstIterator
 
template<typename U>
requires (valid<U>)
constexpr auto find (U &&needle) -> Iterator
 
template<typename U>
requires (valid<U>)
constexpr auto find (U &&needle) const -> ConstIterator
 
constexpr auto contains (Value const &needle) const -> bool
 
template<typename U>
requires (valid<U>)
constexpr auto contains (U &&needle) const -> bool
 
constexpr auto count (Value const &needle) const -> size_t
 
template<typename U>
requires (valid<U>)
constexpr auto count (U &&needle) const -> size_t
 
constexpr auto equal_range (Value const &needle) -> View< Iterator >
 
template<typename U>
requires (valid<U>)
constexpr auto equal_range (U &&needle) -> View< Iterator >
 
constexpr auto equal_range (Value const &needle) const -> View< ConstIterator >
 
template<typename U>
requires (valid<U>)
constexpr auto equal_range (U &&needle) const -> View< ConstIterator >
 
constexpr auto lower_bound (Value const &needle) -> Iterator requires(
 
constexpr auto lower_bound (Value const &needle) const -> ConstIterator requires(
 
template<typename U>
requires (valid<U>)
constexpr auto lower_bound (U &&needle) -> Iterator requires(
 
template<typename U>
requires (valid<U>)
constexpr auto lower_bound (U &&needle) const -> ConstIterator requires(
 
constexpr auto upper_bound (Value const &needle) -> Iterator requires(
 
constexpr auto upper_bound (Value const &needle) const -> ConstIterator requires(
 
template<typename U>
requires (valid<U>)
constexpr auto upper_bound (U &&needle) -> Iterator requires(
 
template<typename U>
requires (valid<U>)
constexpr auto upper_bound (U &&needle) const -> ConstIterator requires(
 
constexpr void intersect (Self const &b)
 
constexpr void subtract (Self const &b)
 

Friends

template<concepts::ContainerCompatible< Value > Con, typename... Args>
requires (concepts::ConstructibleFrom<Self, Args...>)
constexpr friend auto tag_invoke (types::Tag< util::create_in_place >, InPlaceType< Self >, Con &&container, Args &&... args)
 
constexpr friend auto operator| (Self &&a, Self &&b)
 
constexpr friend auto operator|= (Self &a, Self &&b) -> decltype(auto)
 
constexpr friend auto operator& (Self &&a, Self const &b)
 
constexpr friend auto operator&= (Self &a, Self const &b) -> Self &requires(!is_multi)
 
constexpr friend auto operator- (Self &&a, Self const &b)
 
constexpr friend auto operator-= (Self &a, Self const &b) -> Self &requires(!is_multi)
 
template<typename F, SameAs< Tag< erase_if > > T = Tag<erase_if>>
requires (concepts::Predicate<F&, Value const&>)
constexpr friend auto tag_invoke (T, Self &self, F &&function) -> usize
 

Member Function Documentation

◆ at() [1/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::at ( U && needle) -> Optional<Value&>
inlineconstexpr

◆ at() [2/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::at ( U && needle) const -> Optional<Value const&>
inlineconstexpr

◆ at() [3/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::at ( Value const & needle) -> Optional<Value&>
inlineconstexpr

◆ at() [4/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::at ( Value const & needle) const -> Optional<Value const&>
inlineconstexpr

◆ back() [1/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::back ( ) -> Optional<Value&>
inlineconstexpr

◆ back() [2/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::back ( ) const -> Optional<Value const&>
inlineconstexpr

◆ clear()

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
void di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::clear ( )
inlineconstexpr

◆ contains() [1/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::contains ( U && needle) const -> bool
inlineconstexpr

◆ contains() [2/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::contains ( Value const & needle) const -> bool
inlineconstexpr

◆ count() [1/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::count ( U && needle) const -> size_t
inlineconstexpr

◆ count() [2/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::count ( Value const & needle) const -> size_t
inlineconstexpr

◆ emplace()

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::emplace ( Args &&... args)
inlineconstexpr

◆ emplace_hint()

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::emplace_hint ( ConstIterator hint,
Args &&... args )
inlineconstexpr

◆ empty()

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::empty ( ) const -> bool
inlineconstexpr

◆ equal_range() [1/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::equal_range ( U && needle) -> View<Iterator>
inlineconstexpr

◆ equal_range() [2/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::equal_range ( U && needle) const -> View<ConstIterator>
inlineconstexpr

◆ equal_range() [3/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::equal_range ( Value const & needle) -> View<Iterator>
inlineconstexpr

◆ equal_range() [4/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::equal_range ( Value const & needle) const -> View<ConstIterator>
inlineconstexpr

◆ erase() [1/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::erase ( Iterator first,
Iterator last ) -> Iterator
inlineconstexpr

◆ erase() [2/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::erase ( Iterator position)
inlineconstexpr

◆ erase() [3/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::erase ( U && needle) -> size_t
inlineconstexpr

◆ erase() [4/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::erase ( Value const & needle) -> size_t
inlineconstexpr

◆ find() [1/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::find ( U && needle) -> Iterator
inlineconstexpr

◆ find() [2/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::find ( U && needle) const -> ConstIterator
inlineconstexpr

◆ find() [3/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::find ( Value const & needle) -> Iterator
inlineconstexpr

◆ find() [4/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::find ( Value const & needle) const -> ConstIterator
inlineconstexpr

◆ front() [1/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::front ( ) -> Optional<Value&>
inlineconstexpr

◆ front() [2/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::front ( ) const -> Optional<Value const&>
inlineconstexpr

◆ insert() [1/6]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U> && concepts::CreatableFrom<Value, U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::insert ( ConstIterator hint,
U && value )
inlineconstexpr

◆ insert() [2/6]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::insert ( ConstIterator hint,
Value && value )
inlineconstexpr

◆ insert() [3/6]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::insert ( ConstIterator hint,
Value const & value )
inlineconstexpr

◆ insert() [4/6]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U> && concepts::CreatableFrom<Value, U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::insert ( U && value)
inlineconstexpr

◆ insert() [5/6]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::insert ( Value && value)
inlineconstexpr

◆ insert() [6/6]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::insert ( Value const & value)
inlineconstexpr

◆ insert_container() [1/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<concepts::ContainerCompatible< Value > Con>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::insert_container ( Con && container)
inlineconstexpr

◆ insert_container() [2/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<concepts::ContainerCompatible< Value > Con>
void di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::insert_container ( ConstIterator hint,
Con && container )
inlineconstexpr

◆ intersect()

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
void di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::intersect ( Self const & b)
inlineconstexpr

◆ lower_bound() [1/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::lower_bound ( U && needle) -> Iterator requires(
inlineconstexpr

◆ lower_bound() [2/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::lower_bound ( U && needle) const -> ConstIterator requires(
inlineconstexpr

◆ lower_bound() [3/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::lower_bound ( Value const & needle) -> Iterator requires(
inlineconstexpr

◆ lower_bound() [4/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::lower_bound ( Value const & needle) const -> ConstIterator requires(
inlineconstexpr

◆ merge() [1/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::merge ( Self && self)
inlineconstexpr

◆ merge() [2/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::merge ( Self & self)
inlineconstexpr

◆ subtract()

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
void di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::subtract ( Self const & b)
inlineconstexpr

◆ upper_bound() [1/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::upper_bound ( U && needle) -> Iterator requires(
inlineconstexpr

◆ upper_bound() [2/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename U>
requires (valid<U>)
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::upper_bound ( U && needle) const -> ConstIterator requires(
inlineconstexpr

◆ upper_bound() [3/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::upper_bound ( Value const & needle) -> Iterator requires(
inlineconstexpr

◆ upper_bound() [4/4]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
auto di::container::SetInterface< Self, Value, Iterator, ConstIterator, ValidForLookup, is_multi >::upper_bound ( Value const & needle) const -> ConstIterator requires(
inlineconstexpr

Friends And Related Symbol Documentation

◆ operator&

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
friend auto operator& ( Self && a,
Self const & b )
friend

◆ operator&=

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
friend auto operator&= ( Self & a,
Self const & b ) -> Self& requires(!is_multi)
friend

◆ operator-

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
friend auto operator- ( Self && a,
Self const & b )
friend

◆ operator-=

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
friend auto operator-= ( Self & a,
Self const & b ) -> Self& requires(!is_multi)
friend

◆ operator|

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
friend auto operator| ( Self && a,
Self && b )
friend

◆ operator|=

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
friend auto operator|= ( Self & a,
Self && b ) -> decltype(auto)
friend

◆ tag_invoke [1/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<typename F, SameAs< Tag< erase_if > > T = Tag<erase_if>>
requires (concepts::Predicate<F&, Value const&>)
friend auto tag_invoke ( T ,
Self & self,
F && function ) -> usize
friend

◆ tag_invoke [2/2]

template<typename Self, typename Value, typename Iterator, typename ConstIterator, template< typename > typename ValidForLookup, bool is_multi>
template<concepts::ContainerCompatible< Value > Con, typename... Args>
requires (concepts::ConstructibleFrom<Self, Args...>)
friend auto tag_invoke ( types::Tag< util::create_in_place > ,
InPlaceType< Self > ,
Con && container,
Args &&... args )
friend

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