• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

weak_ptr 질문

23.05.19 14:12 작성 23.05.19 14:20 수정 조회수 369

0

weak_ptr은 래퍼런스 카운트를 증가시키지 않는 포인터로 알고 있는데요

강의 내용에는 week_ptr도 래퍼런스 카운트가 있는것처럼 강의 해주셔서 햇갈리네요..

존재하긴하나 증가 시키지만 않는건가요???

 

week_ptr은 래퍼런스 카운트를 증가시키지않는 약한(?) 포인터로 가리키고 있다가

가리키고 있는 메모리가 유효한지 확인하기 위해 shared_ptr로 접근해보고

유효한지 아닌지 판단한다고 알고있습니다 어떤게 맞는걸까요??

 제가 틀리게 알고있던걸까요?? 오래돼서 했갈립니다 ㅠㅠ

답변 1

답변을 작성해보세요.

0

refCount에는 2가지 종류가 있는데
[객체의 생명을 관리하는 refCount]와 [refCount을 관리하는 수치를 담는 메모리 블록을 관리하는 refCount]
이 중 weak_ptr는 후자에 영향을 주지만 전자에는 영향을 주지 않습니다.
마지막으로 이 부분은 직접 F12로 타고 들어가서 코드를 살펴보면 알 수 있습니다.

k ch님의 프로필

k ch

질문자

2023.05.19

감사합니다 말씀 주신 단서로 한번찾아보겠습니다!!

k ch님의 프로필

k ch

질문자

2023.05.19

  void _Incwref() noexcept { // increment weak reference count
        _MT_INCR(_Weaks);
    }

weak_ptr = shared_ptr 대입연산할때

weak refrence count를 늘리고 있던데

실제로 어디에쓰이는지 확인해보려했는데 어디에 쓰이고있는질 모르겠습니다..
이걸 [refCount을 관리하는 수치를 담는 메모리 블록을 관리하는 refCount] 로 이해하면 될까요??