스마트 포인터로 코드를 다시 작성하고 있습니다. 스마트 포인터 질문
void Foo(SomeClass *p) { }
boost::shared_ptr<SomeClass> p(new SomeClass);
지금 무엇을 : 래퍼 (
p.get()
)에서 원래의 포인터를 전달하거나 함수 인수를 재 작성과 같은 직접 스마트 포인터를 전달 :
void Foo(boost::shared_ptr<Foo> obj) { }
잘 모르겠어요 나는 이러한 상황이있다. 스마트 포인터는 포인터를 따라야하며 프로그램에서 여전히 필요한지 여부를 알아야합니다. 그래서 우리는 원래 포인터를 전달할 수 있습니다.
단점은 tyou가 Foo''의 일반 포인터 아주 확실하게해야한다는 것입니다 다른 스마트 포인터의 통제하에 있지 않습니다. 현재도 아니며 나중에 유지 관리 업데이트 중에도 없습니다. –
@ Bart van Ingen Schenau : 그것은 상당히 과격한 디자인 변경을 의미합니다. 'Foo'가 매개 변수의 소유권을 얻는 시점에서, 매개 변수 유형이 서명에서이를 적절히 표현하기 위해 검토 될 필요가있는 시간입니다. –