Iros
 
Loading...
Searching...
No Matches
node_hash_set.h
Go to the documentation of this file.
1#pragma once
2
15#include "di/function/compare.h"
16#include "di/function/equal.h"
17#include "di/platform/prelude.h"
20
21namespace di::container {
22namespace detail {
23 template<typename Value>
24 struct NodeHashSetTag : OwningHashNodeTag<NodeHashSetTag<Value>, Value> {};
25}
26
27template<typename Value, typename Eq = function::Equal, concepts::Hasher Hasher = DefaultHasher,
28 typename Buckets = container::Vector<
32 : public OwningNodeHashTable<
33 Value, Eq, Hasher, Buckets, detail::NodeHashSetTag<Value>, Alloc,
34 SetInterface<NodeHashSet<Value, Eq, Hasher, Buckets, Alloc>, Value,
35 HashNodeIterator<Value, detail::NodeHashSetTag<Value>>,
36 container::ConstIteratorImpl<HashNodeIterator<Value, detail::NodeHashSetTag<Value>>>,
37 detail::NodeHashTableValidForLookup<Value, Eq>::template Type, false>,
38 false, false> {
39private:
40 using Base = OwningNodeHashTable<
41 Value, Eq, Hasher, Buckets, detail::NodeHashSetTag<Value>, Alloc,
46 false, false>;
47
48public:
49 using Base::Base;
50};
51
52template<concepts::InputContainer Con, typename T = meta::ContainerValue<Con>>
54
55template<concepts::InputContainer Con, typename T = meta::ContainerValue<Con>, typename Eq>
57
58template<concepts::InputContainer Con, typename T = meta::ContainerValue<Con>, typename Eq, typename Hasher>
61}
62
63namespace di {
65}
Definition const_iterator_impl.h:19
Definition hash_node_iterator.h:15
Definition forward_list_forward_declaration.h:12
Definition node_hash_set.h:38
Definition owning_node_hash_table.h:59
Definition set_interface.h:18
Definition vector_forward_declaration.h:8
Definition allocator.h:9
Definition hasher.h:8
Definition sequence.h:13
Definition sequence.h:12
container::InfallibleAllocator DefaultAllocator
Definition custom.h:39
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 default_hasher.h:7
Definition owning_node_hash_table.h:36
Definition node_hash_set.h:24
Definition equal.h:8
Definition in_place_template.h:5