生命週期檢查

為協助開發人員找出一些簡單的錯誤,當節點狀態結構和容器遭到刪除時,fbl:: 容器會執行幾項檢查。使用 ZX_DEBUG_ASSERT 進行實作,因此只有在啟用偵錯宣告時,才會存在。

首先,如果容器狀態結構存在於容器中,就不適合刪除。這麼做會被視為錯誤,並且會觸發宣告。請務必確保在容器中不允許刪除物件。通常使用代管指標追蹤物件生命週期時,通常並不容易,因為容器中的物件需要擁有容器的至少一個物件參照,所以物件無法先刪除,直到最後離開容器為止。

其次,如果含有未受管理的指標的容器,其中仍有物件,則可能會遭到刪除。代管指標的容器會自動執行clear()刪除本身保留的代管參照時,會執行容器,但非代管指標容器的容器則不會這麼做。如果容器中仍有非管理指標,當其遭到刪除時,可能是系統發生錯誤,而該記憶體可能流失。因此,允許刪除非代管指標的非空白容器會觸發斷言。