| Index: src/IceDefs.h
|
| diff --git a/src/IceDefs.h b/src/IceDefs.h
|
| index 5f96d7e7e5bb6bbaf1f942ba662b1d896c8a5f97..f58ebe9c9677a40f1af7ed4fdff810672fe6480b 100644
|
| --- a/src/IceDefs.h
|
| +++ b/src/IceDefs.h
|
| @@ -80,12 +80,22 @@ ArenaAllocator<> *getCurrentCfgAllocator();
|
|
|
| template <typename T> struct CfgLocalAllocator {
|
| using value_type = T;
|
| + using pointer = T *;
|
| + using const_pointer = const T *;
|
| + using reference = T &;
|
| + using const_reference = const T &;
|
| + using size_type = std::size_t;
|
| CfgLocalAllocator() = default;
|
| template <class U> CfgLocalAllocator(const CfgLocalAllocator<U> &) {}
|
| - T *allocate(std::size_t Num) {
|
| + pointer allocate(size_type Num) {
|
| return getCurrentCfgAllocator()->Allocate<T>(Num);
|
| }
|
| - void deallocate(T *, std::size_t) {}
|
| + void deallocate(pointer, size_type) {}
|
| + template <class U> struct rebind { typedef CfgLocalAllocator<U> other; };
|
| + void construct(pointer P, const T &Val) {
|
| + new (static_cast<void *>(P)) T(Val);
|
| + }
|
| + void destroy(pointer P) { P->~T(); }
|
| };
|
| template <typename T, typename U>
|
| inline bool operator==(const CfgLocalAllocator<T> &,
|
|
|