gc_undeclare_reachable
gc_undeclare_reachable (std::undeclare_reachable)
<memory> 헤더에 정의되어 있어요. 포인터 p가 참조하는 객체의 도달 가능 상태를, 이전에 std::declare_reachable로 설정했다면 제거해요. C++11부터 도입, C++23에서 제거됐어요.
출처: cppreference
본문
template< class T >
T* undeclare_reachable( T* p );
(C++11부터, C++23에서 제거)
포인터 p가 참조하는 객체의 도달 가능 상태를, 이전에 std::declare_reachable로 설정했다면 제거해요. 객체가 여러 번 도달 가능으로 선언되었다면 상태를 제거하려면 그만큼 undeclare_reachable을 호출해야 해요. 객체가 더 이상 도달 가능으로 선언되지 않고 그 포인터도 없으면, 가비지 컬렉터가 회수하거나 누수 감지기가 누수로 보고할 수 있어요.
매개변수
p: 이전에 도달 가능으로 선언되었고 그 이후로 파괴되지 않은 객체에 대한 포인터
반환값
p의 안전하게 파생된 복사본. 그 복사본은 도달 가능으로 선언된 다른 주소를 가리킬 수 있어요(구현별).
예외
던질 수 있어요(지원 중).
이 함수는 declare_reachable과 함께 GC 환경에서 객체 참조를 보호하고 해제하는 데 쓰였어요. C++23에서 함께 제거됐으므로 새 코드에서는 사용하지 않아요.