Iros
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
Loading...
Searching...
No Matches
tree_multimap.h
Go to the documentation of this file.
1#pragma once
2
11#include "di/function/compare.h"
12#include "di/platform/prelude.h"
15
16namespace di::container {
17template<typename Key, typename Value, concepts::StrictWeakOrder<Key> Comp = function::Compare,
18 concepts::Allocator Alloc = DefaultAllocator>
20 : public OwningRBTree<
21 Tuple<Key, Value>, detail::TreeMapCompAdapter<Comp, Key>, detail::TreeMapTag<Key, Value>, Alloc,
22 MapInterface<
23 TreeMultiMap<Key, Value, Comp, Alloc>, Tuple<Key, Value>, Key, Value,
24 RBTreeIterator<Tuple<Key, Value>, detail::TreeMapTag<Key, Value>>,
25 container::ConstIteratorImpl<RBTreeIterator<Tuple<Key, Value>, detail::TreeMapTag<Key, Value>>>,
26 detail::RBTreeValidForLookup<Tuple<Key, Value>, detail::TreeMapCompAdapter<Comp, Key>>::template Type,
27 true>,
28 true> {
29private:
30 using Base = OwningRBTree<
37 true>,
38 true>;
39
40public:
41 TreeMultiMap() = default;
42
43 TreeMultiMap(Comp const& comparator) : Base(detail::TreeMapCompAdapter<Comp, Key> { comparator }) {}
44};
45
46template<concepts::InputContainer Con, concepts::TupleLike T = meta::ContainerValue<Con>>
47requires(meta::TupleSize<T> == 2)
50
51template<concepts::InputContainer Con, concepts::TupleLike T = meta::ContainerValue<Con>,
52 concepts::StrictWeakOrder<T> Comp>
53requires(meta::TupleSize<T> == 2)
56}
57
58namespace di {
60}
Definition const_iterator_impl.h:19
Definition map_interface.h:21
Definition owning_rb_tree.h:42
Definition rb_tree_iterator.h:10
Definition tree_multimap.h:28
TreeMultiMap(Comp const &comparator)
Definition tree_multimap.h:43
Definition tuple_forward_declaration.h:5
Definition sequence.h:13
Definition sequence.h:12
constexpr auto TupleSize
Definition tuple_size.h:23
decltype(vocab::tuple_element(types::in_place_type< meta::RemoveReference< T > >, c_< index >))::Type TupleElement
Definition tuple_element.h:21
di::meta::Decay< decltype(T)> Tag
Definition tag_invoke.h:28
Definition zstring_parser.h:9
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
Definition tree_map.h:66
Definition in_place_template.h:5