Iros
 
Loading...
Searching...
No Matches
tree_set.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 {
17namespace detail {
18 template<typename Value>
19 struct TreeSetTag : OwningRBTreeTag<TreeSetTag<Value>, Value> {};
20}
21
22template<typename Value, concepts::StrictWeakOrder<Value> Comp = function::Compare,
23 concepts::Allocator Alloc = DefaultAllocator>
25 : public OwningRBTree<
26 Value, Comp, detail::TreeSetTag<Value>, Alloc,
27 SetInterface<TreeSet<Value, Comp, Alloc>, Value, RBTreeIterator<Value, detail::TreeSetTag<Value>>,
28 container::ConstIteratorImpl<RBTreeIterator<Value, detail::TreeSetTag<Value>>>,
29 detail::RBTreeValidForLookup<Value, Comp>::template Type, false>,
30 false> {
31private:
32 using Base =
37 false>;
38
39public:
40 using Base::Base;
41};
42
43template<concepts::InputContainer Con, typename T = meta::ContainerValue<Con>>
45
46template<concepts::InputContainer Con, typename T = meta::ContainerValue<Con>, concepts::StrictWeakOrder<T> Comp>
48}
49
50namespace di {
52}
Definition const_iterator_impl.h:19
Definition owning_rb_tree.h:42
Definition rb_tree_iterator.h:10
Definition set_interface.h:18
Definition tree_set.h:30
Definition sequence.h:13
Definition sequence.h:12
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 owning_rb_tree.h:28
Definition tree_set.h:19
Definition in_place_template.h:5