弱指针(WeakPtr)用作传递指针但不更换指针的Owner,不影响指针的状态(引用计数等),即明确知道谁去释放但其它引用者不确定其时机,用弱引用指针可随时知道其是否已delete。
1、用法:
class Controller {
public:
void SpawnWorker() { Worker::StartNew(weak_factory_.GetWeakPtr()); }
void WorkComplete(const Result& result) { ... }
private:
// Member variables should appear before the WeakPtrFactory, to ensure that any WeakPtrs to Controller are invalidated before its members variable's destructors are executed, rendering them invalid.
WeakPtrFactory<Controller> weak_factory_;
};
class Worker {
public:
static void StartNew(