Namespaces
Variants

std:: declare_reachable

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
declare_reachable
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
定义于头文件 <memory>
void declare_reachable ( void * p ) ;
(C++11 起)
(C++23 中移除)

声明指针 p 所引用的对象为可达状态。可达对象即使所有指向它的指针都被销毁,也不会被垃圾回收器删除,也不会被泄漏检测器视为泄漏。可以多次声明某个对象为可达状态,此时需要多次调用 std::undeclare_reachable 才能移除该属性。例如,当实现启用了垃圾回收机制时, XOR链表 需要声明其节点为可达状态。

目录

参数

p - 安全派生指针或空指针

返回值

(无)

异常

若系统无法分配追踪可达对象所需的内存,可能抛出 std::bad_alloc

参见

(C++11) (removed in C++23)
声明对象可被回收
(函数模板)