표준 shared_ptr과 비교하여 std::make_shared의 효율성을 이해하려면 , 건설 과정을 단계별로 살펴보겠습니다. 단계.
표준 shared_ptr 생성자 사용:
std::shared_ptr<Object> p2(new Object("foo"));
std::make_shared:
std::shared_ptr<Object> p1 = std::make_shared<Object>("foo");
표준 shared_ptr 생성자 접근 방식에서는 Object 생성 중에 예외가 발생하면 정리가 수행되지 않아 매달린 메모리가 남습니다. 그러나 std::make_shared는 생성된 객체와 제어 블록이 단일 할당의 일부이고 예외가 발생하면 정리된다는 것을 보장합니다.
위 내용은 `make_shared` 대 `shared_ptr`: 하나가 더 효율적이고 예외에 안전한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!