티스토리 뷰

 

Effective Modern 이펙티브 모던 C++

 

차례

1장. 형식 연역
2장. auto
3장. 현대적 C++ 적응하기
4장. 똑똑한 포인터
5장. 오른값 참조, 이동 의미론, 완벽 전달
6장. 람다 표현식
7장. 동시성 API
8장. 다듬기 

 

Item 18: 소유권 독점 자원의 관리에는 std::unique_ptr를 사용하라

기억해 둘 사항들

- std::unique_ptr는 독점 소유권 의미론을 가진 자원의 관리를 위한, 작고 빠른 이동 전용 똑똑한 포인터이다.
- 기본적으로 자원 파괴는 delete를 통해 일어나나, 커스텀 삭제자를 지정할 수 도 있다. 상태 있는 삭제자나 함수 포인터를 사용하면 std::unique_ptr 객체의 크기가 커진다.
- std::unique_ptr를 std::shared_ptr로 손쉽게 변환할 수 있다.

 

Item 19: 소유권 공유 자원의 관리에는 std::shared_ptr를 사용하라

기억해 둘 사항들

- std::unique_ptr는 임의의 공유 자원의 수명을 편리하게(쓰레기 수거에 맡길 때만큼이나) 관리할 수 있는 수단을 제공한다.
- 대체로 std::shared_ptr 객체는 그 크기가 std::unique_ptr 객체의 두 배이며, 제어 블록에 관련된 추가 부담을 유발하며, 원자적 참조 횟수 조작을 요구한다.
- 자원은 기본적으로 delete를 통해 파괴되나, 커스텀 삭제자도 지원된다. 삭제자의 형식은 std::shared_ptr의 형식에 아무런 영향도 미치지 않는다.
- 생 포인터 형식의 변수로부터 std::shared_ptr를 생성하는 일은 피해야 한다.

 

참고

예제, https://github.com/BartVandewoestyne/Effective-Modern-Cpp

 

- James Song

 

댓글