[英]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.