std::shared_ptr
또는 std::tr1::shared_ptr
개체에서 원시 포인터를 추출 할 수 있습니까? 의도는 더 이상 객체의 수명을 관리하지 못하도록 스마트 포인터 객체에 알려주는 것입니다. 컨텍스트는 사용자로부터 원시 포인터를 가져 와서 개체에 대한 처리를하는 API를 가지고 있다는 것입니다. 일을 더 쉽게 관리하기 위해 API는 shared_ptr
을이 원시 포인터에서 만듭니다. 이제 사용자는 반환 할 개체를 요청할 수 있습니다. 이 경우 처리 된 객체를 다시 사용자에게 제공 할 때 원시 포인터를 돌려 주려고합니다. 그러나, 나는 그것을 할 길을 찾지 못했습니다. .get()
을 사용하면 스마트 포인터를 무기한으로 유지해야하기 때문에 불가능합니다. 나는 unique_ptr
을 돌려 주었을 것이지만 tr1
에는 그것을 사용할 수 없다.shared_ptr에서 원시 포인터 추출
기본적으로 원시 포인터를 shared_ptr 밖으로 옮기고 싶습니다.
코드로 사례를 만들 수 있습니까? 왜 포인터를 사용자에게 돌려주고 싶은지에 대해서는 잘 모르겠습니다. – Shoe
제어 할 수있는 클래스에 대한 포인터 또는 제어 할 수있는 클래스에서 파생 된 포인터입니까? – aschepler
@ Jefffrey, 불행히도 코드 샘플이 너무 복잡합니다. 설명하기가 얼마나 어려운지 깨닫기 만하면 디자인을 바꿔야한다고 생각하기 시작합니다. – 341008