Most uses of this class just use the default MallocAllocator.
As this contains no fields, we can use the empty base optimisation for BumpPtrAllocatorImpl and save 8 bytes of padding for most use cases.
This prevents using a class that is marked as final as the AllocatorT template argument.
In one must use an allocator that has been marked as final, the simplest way around this is a proxy class.
The class should have all the methods that AllocaterBase expects and should forward the calls to your own allocator instance.