1. new의 직접 사용에 비해, make 함수를 사용하면 소스코드의 중복의 여지가 없어지고, 예외 안정성이 향상되고, std::make_shared와 std::allocate_shared의 경우 더 작고 빠른 코드가 산출된다.
2. make함수의 사용이 불가능 또는 부적합한 경우로는 커스텀 삭제자를 지정해야 하는 경우와 중괄호 초기치를 전달해야하는 경우
3. std::shared_ptr에 대해서는 make함수가 부적합한 경우가 더 있는데, 두 가지 예를 들면
1) 커스텀 메모리 관리기능을 가진 클래스를 다루는 경우
2) 메모리가 넉넉하지 않은 시스템에서 큰 객체를 자주 다루어야하고 std::weak_ptr들이 해당 std::shared_ptr들보다 더 오래 살아남는 경우
'C++' 카테고리의 다른 글
좁히기 변환(축소변환) & 확대 변환 (0) | 2023.09.30 |
---|---|
SFINAE(Substitution failure is not an error) (0) | 2023.09.29 |
std::unique_ptr & std::shared_ptr & std::weak_ptr (0) | 2023.09.28 |
explicit & 특수 멤버 함수 (0) | 2023.09.28 |
noexcept & constexpr (0) | 2023.09.28 |