C/C++ API Reference
Loading...
Searching...
No Matches

Oveview

Classes

class  pw::containers::FlatMap< Key, Value, kArraySize >
 
class  pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator
 
class  pw::IntrusiveMap< Key, T >
 
class  pw::IntrusiveMap< Key, T >::iterator
 
class  pw::IntrusiveMap< Key, T >::const_iterator
 
class  pw::IntrusiveMultiMap< Key, T >
 
class  pw::IntrusiveMultiMap< Key, T >::iterator
 
class  pw::IntrusiveMultiMap< Key, T >::const_iterator
 

Typedefs

using pw::containers::FlatMap< Key, Value, kArraySize >::key_type = Key
 
using pw::containers::FlatMap< Key, Value, kArraySize >::mapped_type = Value
 
using pw::containers::FlatMap< Key, Value, kArraySize >::value_type = Pair< key_type, mapped_type >
 
using pw::containers::FlatMap< Key, Value, kArraySize >::pointer = value_type *
 
using pw::containers::FlatMap< Key, Value, kArraySize >::reference = value_type &
 
using pw::containers::FlatMap< Key, Value, kArraySize >::size_type = size_t
 
using pw::containers::FlatMap< Key, Value, kArraySize >::difference_type = ptrdiff_t
 
using pw::containers::FlatMap< Key, Value, kArraySize >::container_type = typename std::array< value_type, kArraySize >
 
using pw::containers::FlatMap< Key, Value, kArraySize >::iterator = typename container_type::iterator
 
using pw::containers::FlatMap< Key, Value, kArraySize >::const_iterator = typename container_type::const_iterator
 
using pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::value_type = FlatMap::mapped_type
 
using pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::difference_type = std::ptrdiff_t
 
using pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::pointer = value_type *
 
using pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::reference = value_type &
 
using pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::iterator_category = std::bidirectional_iterator_tag
 
using pw::IntrusiveMap< Key, T >::Item = typename Tree::Item
 
using pw::IntrusiveMap< Key, T >::Pair = typename Tree::Pair
 
using pw::IntrusiveMap< Key, T >::key_type = Key
 
using pw::IntrusiveMap< Key, T >::mapped_type = std::remove_cv_t< T >
 
using pw::IntrusiveMap< Key, T >::value_type = Item
 
using pw::IntrusiveMap< Key, T >::size_type = std::size_t
 
using pw::IntrusiveMap< Key, T >::difference_type = std::ptrdiff_t
 
using pw::IntrusiveMap< Key, T >::key_compare = Compare
 
using pw::IntrusiveMap< Key, T >::reference = value_type &
 
using pw::IntrusiveMap< Key, T >::const_reference = const value_type &
 
using pw::IntrusiveMap< Key, T >::pointer = value_type *
 
using pw::IntrusiveMap< Key, T >::const_pointer = const value_type *
 
using pw::IntrusiveMap< Key, T >::reverse_iterator = std::reverse_iterator< iterator >
 
using pw::IntrusiveMap< Key, T >::const_reverse_iterator = std::reverse_iterator< const_iterator >
 
using pw::IntrusiveMultiMap< Key, T >::Item = typename Tree::Item
 
using pw::IntrusiveMultiMap< Key, T >::Pair = typename Tree::Pair
 
using pw::IntrusiveMultiMap< Key, T >::key_type = Key
 
using pw::IntrusiveMultiMap< Key, T >::mapped_type = std::remove_cv_t< T >
 
using pw::IntrusiveMultiMap< Key, T >::value_type = Item
 
using pw::IntrusiveMultiMap< Key, T >::size_type = std::size_t
 
using pw::IntrusiveMultiMap< Key, T >::difference_type = std::ptrdiff_t
 
using pw::IntrusiveMultiMap< Key, T >::key_compare = Compare
 
using pw::IntrusiveMultiMap< Key, T >::reference = value_type &
 
using pw::IntrusiveMultiMap< Key, T >::const_reference = const value_type &
 
using pw::IntrusiveMultiMap< Key, T >::pointer = value_type *
 
using pw::IntrusiveMultiMap< Key, T >::const_pointer = const value_type *
 
using pw::IntrusiveMultiMap< Key, T >::reverse_iterator = std::reverse_iterator< iterator >
 
using pw::IntrusiveMultiMap< Key, T >::const_reverse_iterator = std::reverse_iterator< const_iterator >
 

Functions

bool pw::containers::Pair< First, Second >::operator== (const Pair &p) const
 
bool pw::containers::Pair< First, Second >::operator!= (const Pair &p) const
 
constexpr pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::mapped_iterator (const mapped_iterator &other)=default
 
constexpr mapped_iteratorpw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::operator= (const mapped_iterator &other)=default
 
constexpr reference pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::operator* () const
 
constexpr pointer pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::operator-> () const
 
constexpr mapped_iteratorpw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::operator++ ()
 
constexpr mapped_iterator pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::operator++ (int)
 
constexpr mapped_iteratorpw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::operator-- ()
 
constexpr mapped_iterator pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::operator-- (int)
 
constexpr bool pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::operator== (const mapped_iterator &other) const
 
constexpr bool pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::operator!= (const mapped_iterator &other) const
 
constexpr pw::containers::FlatMap< Key, Value, kArraySize >::FlatMap (const std::array< value_type, kArraySize > &items)
 
constexpr pw::containers::FlatMap< Key, Value, kArraySize >::FlatMap (std::array< value_type, kArraySize > &&items)
 
template<typename... Items, typename = std::enable_if_t< std::conjunction_v<std::is_same<Items, value_type>...>>>
constexpr pw::containers::FlatMap< Key, Value, kArraySize >::FlatMap (const Items &... items)
 
 pw::containers::FlatMap< Key, Value, kArraySize >::FlatMap (FlatMap &)=delete
 
FlatMappw::containers::FlatMap< Key, Value, kArraySize >::operator= (FlatMap &)=delete
 
constexpr size_type pw::containers::FlatMap< Key, Value, kArraySize >::size () const
 
constexpr size_type pw::containers::FlatMap< Key, Value, kArraySize >::empty () const
 
constexpr size_type pw::containers::FlatMap< Key, Value, kArraySize >::max_size () const
 
constexpr mapped_type & pw::containers::FlatMap< Key, Value, kArraySize >::at (const key_type &key)
 
constexpr const mapped_type & pw::containers::FlatMap< Key, Value, kArraySize >::at (const key_type &key) const
 
constexpr bool pw::containers::FlatMap< Key, Value, kArraySize >::contains (const key_type &key) const
 
constexpr const_iterator pw::containers::FlatMap< Key, Value, kArraySize >::find (const key_type &key) const
 
constexpr const_iterator pw::containers::FlatMap< Key, Value, kArraySize >::lower_bound (const key_type &key) const
 
constexpr const_iterator pw::containers::FlatMap< Key, Value, kArraySize >::upper_bound (const key_type &key) const
 
constexpr std::pair< const_iterator, const_iterator > pw::containers::FlatMap< Key, Value, kArraySize >::equal_range (const key_type &key) const
 
constexpr const_iterator pw::containers::FlatMap< Key, Value, kArraySize >::begin () const
 
constexpr const_iterator pw::containers::FlatMap< Key, Value, kArraySize >::cbegin () const
 
constexpr const_iterator pw::containers::FlatMap< Key, Value, kArraySize >::end () const
 
constexpr const_iterator pw::containers::FlatMap< Key, Value, kArraySize >::cend () const
 
constexpr mapped_iterator pw::containers::FlatMap< Key, Value, kArraySize >::mapped_begin ()
 
constexpr mapped_iterator pw::containers::FlatMap< Key, Value, kArraySize >::mapped_end ()
 
template<typename K , typename V , typename... Items>
 pw::containers::FlatMap (const Pair< K, V > &item1, const Items &... items) -> FlatMap< K, V, 1+sizeof...(items)>
 
constexpr pw::IntrusiveMap< Key, T >::IntrusiveMap ()
 Constructs an empty map of items.
 
template<typename Comparator >
constexpr pw::IntrusiveMap< Key, T >::IntrusiveMap (Comparator compare)
 
template<typename Comparator , typename KeyRetriever >
constexpr pw::IntrusiveMap< Key, T >::IntrusiveMap (Comparator &&compare, KeyRetriever &&get_key)
 
template<typename Iterator , typename... Functors>
 pw::IntrusiveMap< Key, T >::IntrusiveMap (Iterator first, Iterator last, Functors &&... functors)
 
template<typename... Functors>
 pw::IntrusiveMap< Key, T >::IntrusiveMap (std::initializer_list< T * > items, Functors &&... functors)
 
T & pw::IntrusiveMap< Key, T >::at (const key_type &key)
 
const T & pw::IntrusiveMap< Key, T >::at (const key_type &key) const
 
iterator pw::IntrusiveMap< Key, T >::begin () noexcept
 
const_iterator pw::IntrusiveMap< Key, T >::begin () const noexcept
 
const_iterator pw::IntrusiveMap< Key, T >::cbegin () const noexcept
 
iterator pw::IntrusiveMap< Key, T >::end () noexcept
 
const_iterator pw::IntrusiveMap< Key, T >::end () const noexcept
 
const_iterator pw::IntrusiveMap< Key, T >::cend () const noexcept
 
reverse_iterator pw::IntrusiveMap< Key, T >::rbegin () noexcept
 
const_reverse_iterator pw::IntrusiveMap< Key, T >::rbegin () const noexcept
 
const_reverse_iterator pw::IntrusiveMap< Key, T >::crbegin () const noexcept
 
reverse_iterator pw::IntrusiveMap< Key, T >::rend () noexcept
 
const_reverse_iterator pw::IntrusiveMap< Key, T >::rend () const noexcept
 
const_reverse_iterator pw::IntrusiveMap< Key, T >::crend () const noexcept
 
bool pw::IntrusiveMap< Key, T >::empty () const noexcept
 Returns whether the map has zero items or not.
 
size_t pw::IntrusiveMap< Key, T >::size () const
 Returns the number of items in the map.
 
constexpr size_t pw::IntrusiveMap< Key, T >::max_size () const noexcept
 
void pw::IntrusiveMap< Key, T >::clear ()
 
std::pair< iterator, bool > pw::IntrusiveMap< Key, T >::insert (T &item)
 
iterator pw::IntrusiveMap< Key, T >::insert (iterator, T &item)
 
template<class Iterator >
void pw::IntrusiveMap< Key, T >::insert (Iterator first, Iterator last)
 
void pw::IntrusiveMap< Key, T >::insert (std::initializer_list< T * > ilist)
 
iterator pw::IntrusiveMap< Key, T >::erase (T &item)
 
iterator pw::IntrusiveMap< Key, T >::erase (iterator pos)
 
iterator pw::IntrusiveMap< Key, T >::erase (iterator first, iterator last)
 
size_t pw::IntrusiveMap< Key, T >::erase (const key_type &key)
 
void pw::IntrusiveMap< Key, T >::swap (IntrusiveMap< Key, T > &other)
 Exchanges this map's items with the other map's items.
 
template<typename MapType >
void pw::IntrusiveMap< Key, T >::merge (MapType &other)
 Splices items from the other map into this one.
 
size_t pw::IntrusiveMap< Key, T >::count (const key_type &key) const
 
iterator pw::IntrusiveMap< Key, T >::find (const key_type &key)
 
const_iterator pw::IntrusiveMap< Key, T >::find (const key_type &key) const
 
std::pair< iterator, iteratorpw::IntrusiveMap< Key, T >::equal_range (const key_type &key)
 
std::pair< const_iterator, const_iteratorpw::IntrusiveMap< Key, T >::equal_range (const key_type &key) const
 
iterator pw::IntrusiveMap< Key, T >::lower_bound (const key_type &key)
 
const_iterator pw::IntrusiveMap< Key, T >::lower_bound (const key_type &key) const
 
iterator pw::IntrusiveMap< Key, T >::upper_bound (const key_type &key)
 
const_iterator pw::IntrusiveMap< Key, T >::upper_bound (const key_type &key) const
 
constexpr pw::IntrusiveMultiMap< Key, T >::IntrusiveMultiMap ()
 Constructs an empty map of items.
 
template<typename Comparator >
constexpr pw::IntrusiveMultiMap< Key, T >::IntrusiveMultiMap (Comparator compare)
 
template<typename Comparator , typename KeyRetriever >
constexpr pw::IntrusiveMultiMap< Key, T >::IntrusiveMultiMap (Comparator &&compare, KeyRetriever &&get_key)
 
template<typename Iterator , typename... Functors>
 pw::IntrusiveMultiMap< Key, T >::IntrusiveMultiMap (Iterator first, Iterator last, Functors &&... functors)
 
template<typename... Functors>
 pw::IntrusiveMultiMap< Key, T >::IntrusiveMultiMap (std::initializer_list< T * > items, Functors &&... functors)
 
iterator pw::IntrusiveMultiMap< Key, T >::begin () noexcept
 
const_iterator pw::IntrusiveMultiMap< Key, T >::begin () const noexcept
 
const_iterator pw::IntrusiveMultiMap< Key, T >::cbegin () const noexcept
 
iterator pw::IntrusiveMultiMap< Key, T >::end () noexcept
 
const_iterator pw::IntrusiveMultiMap< Key, T >::end () const noexcept
 
const_iterator pw::IntrusiveMultiMap< Key, T >::cend () const noexcept
 
reverse_iterator pw::IntrusiveMultiMap< Key, T >::rbegin () noexcept
 
const_reverse_iterator pw::IntrusiveMultiMap< Key, T >::rbegin () const noexcept
 
const_reverse_iterator pw::IntrusiveMultiMap< Key, T >::crbegin () const noexcept
 
reverse_iterator pw::IntrusiveMultiMap< Key, T >::rend () noexcept
 
const_reverse_iterator pw::IntrusiveMultiMap< Key, T >::rend () const noexcept
 
const_reverse_iterator pw::IntrusiveMultiMap< Key, T >::crend () const noexcept
 
bool pw::IntrusiveMultiMap< Key, T >::empty () const noexcept
 Returns whether the multimap has zero items or not.
 
size_t pw::IntrusiveMultiMap< Key, T >::size () const
 Returns the number of items in the multimap.
 
constexpr size_t pw::IntrusiveMultiMap< Key, T >::max_size () const noexcept
 
void pw::IntrusiveMultiMap< Key, T >::clear ()
 
iterator pw::IntrusiveMultiMap< Key, T >::insert (T &item)
 Adds the given item to the multimap.
 
iterator pw::IntrusiveMultiMap< Key, T >::insert (iterator, T &item)
 
template<class Iterator >
void pw::IntrusiveMultiMap< Key, T >::insert (Iterator first, Iterator last)
 
void pw::IntrusiveMultiMap< Key, T >::insert (std::initializer_list< T * > ilist)
 
iterator pw::IntrusiveMultiMap< Key, T >::erase (T &item)
 
iterator pw::IntrusiveMultiMap< Key, T >::erase (iterator pos)
 
iterator pw::IntrusiveMultiMap< Key, T >::erase (iterator first, iterator last)
 
size_t pw::IntrusiveMultiMap< Key, T >::erase (const Key &key)
 
void pw::IntrusiveMultiMap< Key, T >::swap (IntrusiveMultiMap< Key, T > &other)
 Exchanges this multimap's items with the other multimap's items.
 
template<typename MapType >
void pw::IntrusiveMultiMap< Key, T >::merge (MapType &other)
 Splices items from the other map into this one.
 
size_t pw::IntrusiveMultiMap< Key, T >::count (const Key &key) const
 Returns the number of items in the multimap with the given key.
 
iterator pw::IntrusiveMultiMap< Key, T >::find (const Key &key)
 
const_iterator pw::IntrusiveMultiMap< Key, T >::find (const Key &key) const
 
std::pair< iterator, iteratorpw::IntrusiveMultiMap< Key, T >::equal_range (const Key &key)
 
std::pair< const_iterator, const_iteratorpw::IntrusiveMultiMap< Key, T >::equal_range (const Key &key) const
 
iterator pw::IntrusiveMultiMap< Key, T >::lower_bound (const Key &key)
 
const_iterator pw::IntrusiveMultiMap< Key, T >::lower_bound (const Key &key) const
 
iterator pw::IntrusiveMultiMap< Key, T >::upper_bound (const Key &key)
 
const_iterator pw::IntrusiveMultiMap< Key, T >::upper_bound (const Key &key) const
 

Variables

First pw::containers::Pair< First, Second >::first
 
Second pw::containers::Pair< First, Second >::second
 

Friends

class pw::containers::FlatMap< Key, Value, kArraySize >::mapped_iterator::FlatMap
 
template<typename , typename >
class pw::IntrusiveMap< Key, T >::IntrusiveMultiMap
 
template<typename , typename >
class pw::IntrusiveMultiMap< Key, T >::IntrusiveMap
 

Typedef Documentation

◆ Item [1/2]

template<typename Key , typename T >
using pw::IntrusiveMap< Key, T >::Item = typename Tree::Item

IntrusiveMap items must derive from either Item or Pair. Use Pair to automatically provide storage for a Key. Use Item when the derived type has a key() accessor method or when the map provides a custom GetKey function object.

◆ Item [2/2]

template<typename Key , typename T >
using pw::IntrusiveMultiMap< Key, T >::Item = typename Tree::Item

IntrusiveMultiMap items must derive from either Item or Pair. Use Pair to automatically provide storage for a Key. Use Item when the derived type has a key() accessor method or when the map provides a custom GetKey function object.

Function Documentation

◆ at() [1/3]

template<typename Key , typename Value , size_t kArraySize>
constexpr mapped_type & pw::containers::FlatMap< Key, Value, kArraySize >::at ( const key_type &  key)
inlineconstexpr

Accesses a mutable mapped value.

Precondition
The key must exist.
Parameters
[in]keyThe key to the mapped value.
Returns
A reference to the mapped value.

◆ at() [2/3]

template<typename Key , typename T >
T & pw::IntrusiveMap< Key, T >::at ( const key_type &  key)
inline

Returns a reference to the item associated with the given key.

Precondition
The map must contain an item associated with the key.

◆ at() [3/3]

template<typename Key , typename Value , size_t kArraySize>
constexpr const mapped_type & pw::containers::FlatMap< Key, Value, kArraySize >::at ( const key_type &  key) const
inlineconstexpr

Accesses a mapped value.

Precondition
The key must exist.
Parameters
[in]keyThe key to the mapped value.
Returns
A const reference to the mapped value.

◆ clear() [1/2]

template<typename Key , typename T >
void pw::IntrusiveMap< Key, T >::clear ( )
inline

Removes all items from the map and leaves it empty.

The items themselves are not destructed.

◆ clear() [2/2]

template<typename Key , typename T >
void pw::IntrusiveMultiMap< Key, T >::clear ( )
inline

Removes all items from the multimap and leaves it empty.

The items themselves are not destructed.

◆ count()

template<typename Key , typename T >
size_t pw::IntrusiveMap< Key, T >::count ( const key_type &  key) const
inline

Returns the number of items in the map with the given key.

Since the map requires unique keys, this is always 0 or 1.

◆ equal_range() [1/2]

template<typename Key , typename T >
std::pair< iterator, iterator > pw::IntrusiveMultiMap< Key, T >::equal_range ( const Key &  key)
inline

Returns a pair of iterators where the first points to the item with the smallest key that is not less than the given key, and the second points to the item with the smallest key that is greater than the given key.

◆ equal_range() [2/2]

template<typename Key , typename T >
std::pair< iterator, iterator > pw::IntrusiveMap< Key, T >::equal_range ( const key_type &  key)
inline

Returns a pair of iterators where the first points to the item with the smallest key that is not less than the given key, and the second points to the item with the smallest key that is greater than the given key.

◆ erase() [1/2]

template<typename Key , typename T >
iterator pw::IntrusiveMap< Key, T >::erase ( T &  item)
inline

Removes an item from the map and returns an iterator to the item after the removed item..

The items themselves are not destructed.

◆ erase() [2/2]

template<typename Key , typename T >
iterator pw::IntrusiveMultiMap< Key, T >::erase ( T &  item)
inline

Removes an item from the multimap and returns an iterator to the item after the removed item.

The items themselves are not destructed.

◆ find() [1/2]

template<typename Key , typename T >
iterator pw::IntrusiveMultiMap< Key, T >::find ( const Key &  key)
inline

Returns a pointer to an item with the given key, or null if the multimap does not contain such an item.

◆ find() [2/2]

template<typename Key , typename T >
iterator pw::IntrusiveMap< Key, T >::find ( const key_type &  key)
inline

Returns a pointer to an item with the given key, or null if the map does not contain such an item.

◆ insert()

template<typename Key , typename T >
std::pair< iterator, bool > pw::IntrusiveMap< Key, T >::insert ( T &  item)
inline

Attempts to add the given item to the map.

The item will be added if the map does not already contain an item with the given item's key.

Returns
A pointer to the inserted item and true, or a pointer to the existing item with same key and false.

◆ IntrusiveMap() [1/4]

template<typename Key , typename T >
template<typename Comparator , typename KeyRetriever >
constexpr pw::IntrusiveMap< Key, T >::IntrusiveMap ( Comparator &&  compare,
KeyRetriever &&  get_key 
)
inlineconstexpr

Constructs an empty map of items.

Parameters
compareFunction with the signature bool(Key, Key) that is used to order items.
get_keyFunction with signature Key(const T&) that returns the value that items are sorted on.

◆ IntrusiveMap() [2/4]

template<typename Key , typename T >
template<typename Comparator >
constexpr pw::IntrusiveMap< Key, T >::IntrusiveMap ( Comparator  compare)
inlineexplicitconstexpr

Constructs an empty map of items.

SFINAE is used to disambiguate between this constructor and the one that takes an initializer list.

Parameters
compareFunction with the signature bool(Key, Key) that is used to order items.

◆ IntrusiveMap() [3/4]

template<typename Key , typename T >
template<typename Iterator , typename... Functors>
pw::IntrusiveMap< Key, T >::IntrusiveMap ( Iterator  first,
Iterator  last,
Functors &&...  functors 
)
inline

Constructs an IntrusiveMap from an iterator over Items.

The iterator may dereference as either Item& (e.g. from std::array<Item>) or Item* (e.g. from std::initializer_list<Item*>).

◆ IntrusiveMap() [4/4]

template<typename Key , typename T >
template<typename... Functors>
pw::IntrusiveMap< Key, T >::IntrusiveMap ( std::initializer_list< T * >  items,
Functors &&...  functors 
)
inlineexplicit

Constructs an IntrusiveMap from a std::initializer_list of pointers to items.

◆ IntrusiveMultiMap() [1/4]

template<typename Key , typename T >
template<typename Comparator , typename KeyRetriever >
constexpr pw::IntrusiveMultiMap< Key, T >::IntrusiveMultiMap ( Comparator &&  compare,
KeyRetriever &&  get_key 
)
inlineconstexpr

Constructs an empty map of items.

Parameters
compareFunction with the signature bool(Key, Key) that is used to order items.
get_keyFunction with signature Key(const T&) that returns the value that items are sorted on.

◆ IntrusiveMultiMap() [2/4]

template<typename Key , typename T >
template<typename Comparator >
constexpr pw::IntrusiveMultiMap< Key, T >::IntrusiveMultiMap ( Comparator  compare)
inlineexplicitconstexpr

Constructs an empty map of items.

SFINAE is used to disambiguate between this constructor and the one that takes an initializer list.

Parameters
compareFunction with the signature bool(Key, Key) that is used to order items.
get_keyFunction with signature Key(const T&) that returns the value that items are sorted on.

◆ IntrusiveMultiMap() [3/4]

template<typename Key , typename T >
template<typename Iterator , typename... Functors>
pw::IntrusiveMultiMap< Key, T >::IntrusiveMultiMap ( Iterator  first,
Iterator  last,
Functors &&...  functors 
)
inline

Constructs an IntrusiveMultiMap from an iterator over Items.

The iterator may dereference as either Item& (e.g. from std::array<Item>) or Item* (e.g. from std::initializer_list<Item*>).

◆ IntrusiveMultiMap() [4/4]

template<typename Key , typename T >
template<typename... Functors>
pw::IntrusiveMultiMap< Key, T >::IntrusiveMultiMap ( std::initializer_list< T * >  items,
Functors &&...  functors 
)
inline

Constructs an IntrusiveMultiMap from a std::initializer_list of pointers to items.

◆ lower_bound() [1/2]

template<typename Key , typename T >
iterator pw::IntrusiveMultiMap< Key, T >::lower_bound ( const Key &  key)
inline

Returns an iterator to the item in the multimap with the smallest key that is greater than or equal to the given key, or end() if the multimap is empty.

◆ lower_bound() [2/2]

template<typename Key , typename T >
iterator pw::IntrusiveMap< Key, T >::lower_bound ( const key_type &  key)
inline

Returns an iterator to the item in the map with the smallest key that is greater than or equal to the given key, or end() if the map is empty.

◆ mapped_begin()

template<typename Key , typename Value , size_t kArraySize>
constexpr mapped_iterator pw::containers::FlatMap< Key, Value, kArraySize >::mapped_begin ( )
inlineconstexpr

Gets an iterator to the first mapped value.

Mapped iterators iterate through the mapped values, and allow mutation of those values (for a non-const FlatMap object).

Returns
An iterator to the first mapped value.

◆ mapped_end()

template<typename Key , typename Value , size_t kArraySize>
constexpr mapped_iterator pw::containers::FlatMap< Key, Value, kArraySize >::mapped_end ( )
inlineconstexpr

Gets an iterator to one past the last mapped value.

Mapped iterators iterate through the mapped values, and allow mutation of those values (for a non-const FlatMap object).

Returns
An iterator to one past the last mapped value.

◆ max_size() [1/2]

template<typename Key , typename T >
constexpr size_t pw::IntrusiveMap< Key, T >::max_size ( ) const
inlineconstexprnoexcept

Returns how many items can be added.

As an intrusive container, this is effectively unbounded.

◆ max_size() [2/2]

template<typename Key , typename T >
constexpr size_t pw::IntrusiveMultiMap< Key, T >::max_size ( ) const
inlineconstexprnoexcept

Returns how many items can be added.

As an intrusive container, this is effectively unbounded.

◆ upper_bound() [1/2]

template<typename Key , typename T >
iterator pw::IntrusiveMultiMap< Key, T >::upper_bound ( const Key &  key)
inline

Returns an iterator to the item in the multimap with the smallest key that is strictly greater than the given key, or end() if the multimap is empty.

◆ upper_bound() [2/2]

template<typename Key , typename T >
iterator pw::IntrusiveMap< Key, T >::upper_bound ( const key_type &  key)
inline

Returns an iterator to the item in the map with the smallest key that is strictly greater than the given key, or end() if the map is empty.