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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C ++ 17,不推荐使用的函数 标准库?相关的知识,希望对你有一定的参考价值。

我只是意识到Dynamic memory management标准库的某些功能已经在C ++ 17中被弃用了。一个例子是get_temporary_buffer

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

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

答案

the proposal that deprecates it说:

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

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

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

以上是关于C ++ 17,不推荐使用的函数 标准库?的主要内容,如果未能解决你的问题,请参考以下文章

使用标准库Ruby将数据标记到Elasticsearch批量中

求C语言标准函数库的源代码

一本深入探讨C++11~C++17最新语言特性的书推荐给你

解决This function or variable may be unsafe

复制文件而不使用 C 中的标准库函数

C标准库中的函数定义在哪里?