【发布时间】:2019-05-26 12:18:41
【问题描述】:
试图弄清楚如何使用 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;
}
错误:
错误:将“const std::allocator”作为“this”参数传递会丢弃 限定词 [-fpermissive] :allocator(alloc), data(alloc.allocate(n)), size(n), space(n)
【问题讨论】:
-
alloc.allocate(n)您尝试在const引用上调用非常量成员函数