Pap*_*ter 0 c++ memory-management c++11
该std::get_temporary_buffer回报std::pair持有的指针分配存储的开始和分配对象的数目,以及其对应的唯一的目的:std::return_temporary_buffer是为了释放内存之前与分配std::get_temporary_buffer.
这两个函数都位于<memory>标题上,其主要目的是提供增强内存管理的工具(顾名思义)并使内存管理更安全.
关于内存管理的安全性,<memory>头部还提供了智能指针实用程序,它允许以类似RAII的方式管理内存,从而使内存管理异常安全.
C++ 14还添加了std::make_unique辅助函数,因此我们现在可以避免在许多情况下使用原始指针.
通过所有这些努力减少原始指针的使用,实现std::get_temporary_buffer返回原始指针而不是智能指针是非常令人困惑的.这就是为什么我想问:
std::get_temporary_buffer返回原始指针而不是返回智能指针?简单的答案是std::get_temporary_buffer在智能指针标准化之前创建的,并且更改std::get_temporary_bufferC++ 11中的返回值会破坏依赖于它的代码,这对于C++标准库来说是绝对不可接受的.
现在,为什么他们没有标准化新的智能指针等效?好吧,也许没有人对拥有它感兴趣.就个人而言,我发现有一个智能指针拥有许多对象是很奇怪的.如果您需要智能阵列,请使用std::vector.
| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |