C++ 标准库容器(例如
std::vector
)接受可选模板参数,使您可以指定备用分配器。我能找到的示例显示了通过语法在每个对象创建时发生的情况:
std::vector<T,custom::custom_allocator<T> >
有没有办法全局设置
custom::custom_allocator<T>
,这样我就不需要每次都将它包含在模板参数中?首选不需要将 stl 包装在自定义代码中或使用处理器文本替换的解决方案。
您可以简单地使用宏
#define my_vec(T) std::vector<T, custom::custom_allocator<T>>
my_vec(int) nums = {1, 2, 3};