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
返回一個原始指針,而不是返回一個聰明的指針? - 如果出現這種「老式」手動分配和釋放內存的原因,使用智能指針無法實現哪個目標?