컴파일러1 [Effective C++]항목 17 : new로 생성한 객체를 스마트 포인터에 저장하는 코드는 별도의 한 문장으로 만들자. 요약 new로 생성한 객체를 스마트 포인터로 넣는 코드는 별도의 한 문장으로 만들자! 아니면 예외가 발생될 때 디버깅하기 힘든 자원 누출이 초래될수 있다.! 쉽게 말해서 다음과 같은 코드에서 processWidget(std::tr1::shared_ptr(new Widget), priority()); 컴파일러는 priority를 호출하고 new Widget을 실행하고 tr1::shared_ptr 생성자를 호출 하는 3가지 일을 하는데 컴파일러에 따라 위 순서가 뒤죽박죽 될 수 있으니 std::tr1::shared_ptr pw(new Widget); //new로 생성한 객체를 스마트 포인터에 담는 코드를 하나의 독립적인 문장으로 만든다. processWidget(pw, priority); 위와 같이 명시적으.. 2019. 8. 6. 이전 1 다음