텍스처에 대한 포인터를 저장하기 위해 boost :: shared_ptr을 사용하고 있습니다. 필요에 따라 새로운 텍스처를로드하고 shared_ptr을 사용하여 프로그램간에 공유합니다. 내 응용 프로그램이 너무 많은 메모리를 사용하는 경우 사용하지 않는 텍스처를 제거하여 메모리를 지우고 싶습니다. 얼마나 많은 객체가 shared_ptr을 통해 텍스처에 접근 할 수 있는지를 결정할 수있는 방법이 있습니까?boost shared_ptr 소유자 수 얻기
2
A
답변
6
사용하지 않는 경우 shared_ptr
은 자동으로 해제합니다. 그것이 shared_ptr
의 요점입니다. 실제 사용하지 않고 텍스처에 shared_ptr
을 잡고 있다면 shared_ptr
계약을 위반하고있어 사용해서는 안됩니다.
2
shared_ptr::use_count()
을 사용할 수 있지만 그렇게하기 전에 설명서를 읽으십시오.
1
이 있지만 문서에 나와 있듯이 너무 효율적이라고 할 수는 없습니다.
1
클래스에는 멤버 함수 use_count()
및 unique()
이있어 사용 횟수에 액세스 할 수 있습니다.
정보가 당신에게 어떻게 유용한 지 다른 질문입니다.
관련 문제
- 1. boost :: shared_ptr 받기 (
- 2. boost :: shared_ptr 및 상속
- 3. boost shared_ptr 팩토리 함수
- 4. C++ 0x std :: shared_ptr 대 boost :: shared_ptr
- 5. shared_ptr 및 boost :: transform_iterator의 boost :: bimap
- 6. Objective-C++에서 boost :: shared_ptr
- 7. 에 관한 혼란 boost :: shared_ptr
- 8. 진화하는 C++ std :: namespace를 처리하는 방법? 예 : std :: tr1 :: shared_ptr 대 std :: shared_ptr 대 boost :: shared_ptr 대 boost :: tr1 :: shared_ptr
- 9. std :: set 유지하기 <boost :: shared_ptr>
- 10. 라이브러리의 공용 인터페이스에서 boost :: shared_ptr 사용
- 11. boost :: shared_ptr 질문. 왜이게 효과가 있니?
- 12. ToolStripDropDownItem의 가장 높은 소유자 얻기
- 13. boost :: shared_ptr 및 파생 클래스 지정
- 14. boost :: shared_ptr 내부에 char [undetermined_during_compile_time_size]를 유지할 수 있습니까?
- 15. 포인터에서 shared_ptr
- 16. Multimap 및 shared_ptr
- 17. boost :: bind, boost :: shared_ptr 및 boost :: thread를 함께 사용하면 복사 생성자가 호출되지 않습니다.
- 18. QList 및 shared_ptr
- 19. 부스트 shared_ptr use_count 함수
- 20. shared_ptr 사용
- 21. 비 스레드 안전 shared_ptr 만들기
- 22. boost :: shared_ptr가있는 NULL 포인터?
- 23. 스택 객체의 C++ shared_ptr
- 24. C++ 정적 클래스 및 shared_ptr 메모리 누수
- 25. 부스트 shared_ptr : 연산자 =와 재설정의 차이점?
- 26. 명시 적 함수의 정의없이 boost :: bind를 사용하여 boost :: shared_ptr에서 참조를 유지할 수 있습니까?
- 27. Intellisense는 boost :: boost :: boost :: boost :: boost :: boost :: classname을 보여줍니다. 왜?
- 28. 인터페이스를 반환하는 shared_ptr
- 29. shared_ptr 전용 컬렉션
- 30. shared_ptr segfault 일으키는
모든 텍스처는 shared_ptr을 통해 ResourceManager에 보관됩니다. 그리고 프로그램의 다른 부분은이 관리자를 통해 텍스처에 액세스 할 수 있습니다. 나는 메모리 경고를받을 때까지 텍스처를 제거하고 싶지 않습니다. 이 경우 사용하지 않는 텍스처 (자원 관리자 만 보유)를 제거하고 싶습니다. – Andrew
@Andrew : boost.weak_ptr 또는 boost.intrusive_ptr을 보셨습니까? – PlasmaHH
@Andrew : ResourceManager를 삭제하고 'shared_ptr'을 처리하는 것이 더 쉬울 것입니다. – Puppy