我正在挖掘boost的文档,寻找在boost :: shared_ptr中删除对象之前调用的回调,因此我可以将对象状态写回硬盘,并从std :: map中删除weak_ptr元素。
有谁知道如何处理这个问题?
答案 0 :(得分:4)
当共享指针被删除时,它应该调用你的对象析构函数。你可以在那时将对象写入磁盘,就在它的析构函数中。
答案 1 :(得分:2)
您可以将已删除的函数传递给shared_ptr并在此函数中写入对象状态。
template<class Y, class D> shared_ptr(Y * p, D d);