我想优化下一个方法
auto MakeBuffer(size_t size)
{
return std::shared_ptr<uint8_t>{new uint8_t[size], std::default_delete<uint8_t[]>()};
}
正如您所见,缓冲区分两个阶段创建:
一般情况下,我们可以通过使用std :: make_shared避免重复分配。但是我如何才能为动态大小缓冲区做到这一点? std :: allocate_shared不是解决方案(如果我理解正确的话),因为自定义分配器旨在仅创建对象而不是控制块
编辑。修复了缓冲区清理中的错误