|
|
|
@ -167,11 +167,23 @@ class Map { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#if __cplusplus >= 201103L |
|
|
|
|
template<class NodeType, class... Args> |
|
|
|
|
void construct(NodeType* p, Args&&... args) { |
|
|
|
|
new (p) NodeType(std::forward<Args>(args)...); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<class NodeType> |
|
|
|
|
void destroy(NodeType* p) { |
|
|
|
|
if (arena_ == NULL) p->~NodeType(); |
|
|
|
|
} |
|
|
|
|
#else |
|
|
|
|
void construct(pointer p, const_reference t) { new (p) value_type(t); } |
|
|
|
|
|
|
|
|
|
void destroy(pointer p) { |
|
|
|
|
if (arena_ == NULL) p->~value_type(); |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
template <typename X> |
|
|
|
|
struct rebind { |
|
|
|
|