부스트 라이브러리에 C++ 1x의 std :: unique_ptr에 해당하는 클래스가 있습니까? 내가 지금처럼 예외 안전 공장 기능을 수있게되고 찾고 있어요 행동 ...unique_ptr 부스트가 이에 해당합니까?
std::unique_ptr<Base> create_base()
{
return std::unique_ptr<Base>(new Derived);
}
void some_other_function()
{
std::unique_ptr<Base> b = create_base();
// Do some stuff with b that may or may not throw an exception...
// Now b is destructed automagically.
}
편집 : 지금, 나는 내가 할 수있는 가장 좋은 것 같아이 해킹을 사용하고 있습니다 ...이 시점에서 interprocess 라이브러리에서
Base* create_base()
{
return new Derived;
}
void some_other_function()
{
boost::scoped_ptr<Base> b = create_base();
// Do some stuff with b that may or may not throw an exception...
// Now b is deleted automagically.
}
또한이 효과는 복사 생성자에 이동 의미 체계를 만들어서 생성 한 다음 소멸자가 해제하기 전에 검사 할 수 있습니까? –