Make MapAllocator work with C++11.

Change-Id: I0e1d9e248403631cb57ebed5231e85d19b9bb3df
This commit is contained in:
Feng Xiao 2015-05-26 14:24:10 -07:00
parent da0afba8f8
commit bdd105d978

View file

@ -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 {