Trying to figure out how to use std :: allocator.
#include <iostream> template <typename T, typename A> struct vector_base { A allocator; T* data; size_t size; size_t space; vector_base(const A &alloc, size_t n) :allocator(alloc), data(alloc.allocate(n)), size(n), space(n) {} ~vector_base() {allocator.deallocate(data, space);} }; int main() { std::allocator<int> my_allocator; vector_base<int, std::allocator<int>> vector(my_allocator, 10); return 0; } Error:
error: passing ‘const std::allocator’ as ‘this’ argument discards qualifiers [-fpermissive] :allocator(alloc), data(alloc.allocate(n)), size(n), space(n)
alloc.allocate(n)you try to call a non-const member function on aconstreference