Make MapAllocator work with C++11.
Change-Id: I0e1d9e248403631cb57ebed5231e85d19b9bb3df
This commit is contained in:
parent
da0afba8f8
commit
bdd105d978
1 changed files with 12 additions and 0 deletions
|
@ -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 {
|
||||
|
|
Loading…
Add table
Reference in a new issue