작성
·
509
·
수정됨
0
weak_ptr은 래퍼런스 카운트를 증가시키지 않는 포인터로 알고 있는데요
강의 내용에는 week_ptr도 래퍼런스 카운트가 있는것처럼 강의 해주셔서 햇갈리네요..
존재하긴하나 증가 시키지만 않는건가요???
week_ptr은 래퍼런스 카운트를 증가시키지않는 약한(?) 포인터로 가리키고 있다가
가리키고 있는 메모리가 유효한지 확인하기 위해 shared_ptr로 접근해보고
유효한지 아닌지 판단한다고 알고있습니다 어떤게 맞는걸까요??
제가 틀리게 알고있던걸까요?? 오래돼서 했갈립니다 ㅠㅠ
답변 1
0
refCount에는 2가지 종류가 있는데
[객체의 생명을 관리하는 refCount]와 [refCount을 관리하는 수치를 담는 메모리 블록을 관리하는 refCount]
이 중 weak_ptr는 후자에 영향을 주지만 전자에는 영향을 주지 않습니다.
마지막으로 이 부분은 직접 F12로 타고 들어가서 코드를 살펴보면 알 수 있습니다.
void _Incwref() noexcept { // increment weak reference count
_MT_INCR(_Weaks);
}
weak_ptr = shared_ptr 대입연산할때
weak refrence count를 늘리고 있던데
실제로 어디에쓰이는지 확인해보려했는데 어디에 쓰이고있는질 모르겠습니다..
이걸 [refCount을 관리하는 수치를 담는 메모리 블록을 관리하는 refCount] 로 이해하면 될까요??
감사합니다 말씀 주신 단서로 한번찾아보겠습니다!!