Broom 1.0.0
A thread-local C++ Garbage Collector
Loading...
Searching...
No Matches
broom-multimap.h
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4
5#include "broom.h"
6#include "impl/broom-containers.h"
7
8#define MULTIMAP_METHODS(X_) \
9 CPP11_MULTIMAP_METHODS(X_) \
10 CPP14_MULTIMAP_METHODS(X_) \
11 CPP17_MULTIMAP_METHODS(X_) \
12 CPP20_MULTIMAP_METHODS(X_) \
13 CPP23_MULTIMAP_METHODS(X_)
14
15namespace broom {
27// XXX(gc): Implement via forwarding instead?
28template <typename Key, typename T, typename Compare = std::less<Key>,
29 typename Allocator = std::allocator<std::pair<const Key, T>>>
30class multimap : private std::multimap<Key, T, Compare, Allocator>,
31 public BroomValue {
32 using Base = std::multimap<Key, T, Compare, Allocator>;
33
34 public:
35 DEF_TYPES()
44 for (const auto& [k, v] : *this) {
46 VISIT_HELPER(v, T);
47 }
48 }
49};
50} // namespace broom
51
52#undef MULTIMAP_METHODS
53
54#include "impl/broom-undef.h"
#define MULTIMAP_METHODS(X_)
virtual void Visit(Visitor *visitor) const
std::queue< T, broom::deque< T > > queue
Definition broom-queue.h:12