Merge pull request #1692 from vjpai/friendless

Workaround for gcc-4.4 incompatibility
This commit is contained in:
Feng Xiao 2016-06-16 16:19:42 -07:00 committed by GitHub
commit 98bd6d753a

View File

@ -587,7 +587,7 @@ class Map {
explicit MapAllocator(Arena* arena) : arena_(arena) {}
template <typename X>
MapAllocator(const MapAllocator<X>& allocator)
: arena_(allocator.arena_) {}
: arena_(allocator.arena()) {}
pointer allocate(size_type n, const_pointer hint = 0) {
// If arena is not given, malloc needs to be called which doesn't
@ -650,12 +650,15 @@ class Map {
return std::numeric_limits<size_type>::max();
}
// To support gcc-4.4, which does not properly
// support templated friend classes
Arena* arena() const {
return arena_;
}
private:
typedef void DestructorSkippable_;
Arena* const arena_;
template <typename X>
friend class MapAllocator;
};
// InnerMap's key type is Key and its value type is value_type*. We use a