簡體   English   中英

為什么std :: allocator :: deallocate不是noexcept?

[英]Why is std::allocator::deallocate not noexcept?

C ++規范(ISO / IEC 14882:2011 + ISO / IEC 14882:2014)在表28中定義了解除分配的分配器要求:

p指向的區域中的所有n個T對象應在此呼叫之前銷毀。 n應匹配傳遞給allocate的值以獲取此內存。 不拋出異常。

但為什么deallocate仍然不是 noexcept?

這是狹窄的契約(例如,如果你傳遞一個未通過allocate返回的指針,則會導致未定義的行為),因此根據標准庫的通常策略,它不會標記為noexcept。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM