摘要: 刪除一個動態(tài)分配的對象時,必須調(diào)用它的析構函數(shù)。如果這個類型是不完整的,即只有聲明沒有定義,那么析構函數(shù)可能會沒被調(diào)用。這是一種潛在的危險狀態(tài),所以應該避免它。對于類模板及函數(shù)模板,風險會更大,因為無法預先知道會使用什么類型。使用 checked_delete 和 checked_array_delete, 可以解決這個刪除不完整類型的問題。它沒有運行期的額外開銷,只是直接調(diào)用 delete, 因此說 checked_delete 帶來的安全性實際上是免費的。
如果你需要在調(diào)用delete時確保類型是完整的,就使用 checked_delete 。
閱讀全文