gc_declare_no_pointers

gc_declare_no_pointers (std::declare_no_pointers)

<memory> 헤더에 정의되어 있어요. 지정된 메모리 영역(p가 가리키는 바이트에서 시작하는 n 바이트)에 추적 가능한 포인터가 없음을 가비지 컬렉터 또는 누수 감지기에 알려요. C++11부터 도입, C++23에서 제거됐어요.

출처: cppreference

본문

void declare_no_pointers( char *p, std::size_t n );

(C++11부터, C++23에서 제거)

지정된 메모리 영역(p가 가리키는 바이트에서 시작하는 n 바이트)에 추적 가능한 포인터가 없음을 가비지 컬렉터나 누수 감지기에 알려요. 영역의 어떤 부분이 할당된 객체 안에 있으면, 전체 영역이 같은 객체 안에 포함되어야 해요.

매개변수

  • p: 범위의 시작을 가리키는 포인터
  • n: 범위의 바이트 수

반환값

없음.

예외

아무 것도 던지지 않아요.

이 함수는 GC가 활성화된 환경에서, 메모리에 포인터가 실제로 없다는 것을 알려 GC가 안전하게 수집하도록 할 때 사용했어요. C++23에서 제거되었으므로 새 코드에서는 쓰지 않아요.

더 알아보기 (Learn more)

cppreference