Intrusive smart pointers