是否可以覆盖 C++ 中的默认分配器,而无需在每个构造函数中手动指定它

问题描述 投票:0回答:1

C++ 标准库容器(例如

std::vector
)接受可选模板参数,使您可以指定备用分配器。我能找到的示例显示了通过语法在每个对象创建时发生的情况:

std::vector<T,custom::custom_allocator<T> >

有没有办法全局设置

custom::custom_allocator<T>
,这样我就不需要每次都将它包含在模板参数中?首选不需要将 stl 包装在自定义代码中或使用处理器文本替换的解决方案。

c++ templates allocator
1个回答
-1
投票

您可以简单地使用宏

#define my_vec(T) std::vector<T, custom::custom_allocator<T>>

my_vec(int) nums = {1, 2, 3};
© www.soinside.com 2019 - 2024. All rights reserved.