std::get_temporary_buffer
返回std::pair
,它持有一个指向分配存储开始位置的指针和分配的对象个数,其唯一目的是:std::return_temporary_buffer
用于取消分配内存以前分配std::get_temporary_buffer
。std :: get_temporary_buffer返回的是原始指针而不是智能的指针
这两个函数都位于<memory>
头上,主要目的是提供增强内存管理(正如其名称所暗示的)的工具并使内存管理更加安全。
关于内存管理的安全性,<memory>
头还提供了智能指针实用程序,它允许以类似RAII的方式管理内存,从而使内存管理异常安全。
C++ 14还增加了std::make_unique
帮助函数,所以我们可以在很多情况下避免使用原始指针。
在减少原始指针使用的所有努力中,实现std::get_temporary_buffer
返回一个原始指针而不是智能指针是相当混乱的。这就是为什么我想问:
- 是否有任何理由
std::get_temporary_buffer
返回一个原始指针,而不是返回一个聪明的指针? - 如果出现这种“老式”手动分配和释放内存的原因,使用智能指针无法实现哪个目标?