Broom 1.0.0
A thread-local C++ Garbage Collector
Loading...
Searching...
No Matches
broom-map.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 MAP_METHODS(X_) \
9 CPP11_MAP_METHODS(X_) \
10 CPP14_MAP_METHODS(X_) \
11 CPP17_MAP_METHODS(X_) \
12 CPP20_MAP_METHODS(X_) \
13 CPP23_MAP_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 map : private std::map<Key, T, Compare, Allocator>, public BroomValue {
31 using Base = std::map<Key, T, Compare, Allocator>;
32
33 public:
34 DEF_TYPES()
42 for (const auto& [k, v] : *this) {
44 VISIT_HELPER(v, T);
45 }
46 }
47};
48} // namespace broom
49
50#undef MAP_METHODS
51
52#include "impl/broom-undef.h"
#define MAP_METHODS(X_)
Definition broom-map.h:8
virtual void Visit(Visitor *visitor) const
Definition broom-map.h:41
std::queue< T, broom::deque< T > > queue
Definition broom-queue.h:12