繁体   English   中英

C ++ 17,<memory>标准库中不推荐使用的函数?

[英]C++17, deprecated functions in <memory> standard library?

我刚刚意识到动态内存管理标准库的某些功能已在C ++ 17中弃用 一个例子是get_temporary_buffer

template< class T >
std::pair< T*, std::ptrdiff_t > get_temporary_buffer( std::ptrdiff_t count );

有人可以解释一下原因吗? 我可以期待在C ++ 20中有替代品吗?

根据弃草它的提议

如果今天提出这个API将被认为是一个不完整的想法。 作为一个功能API,如果分配缓冲区的函数泄漏,它缺乏异常安全性,但我们不提供类似RAII的包装器来促进安全使用。

有人建议,此API的所有当前实现实际上都不会比常规new运算符执行更有效的分配,并且,如果确实如此,我们应该认真考虑弃用此工具。 否则,我们应该用适当的防护/包装类完成设计,并鼓励供应商提供错失的优化机会。

简而言之,只需使用new / delete 或者你自己的临时内存分配器; 哪个最适合您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM