나는 래퍼 클래스를 설계하고 C에서 스택 할당 ++ 객체의 해제 (std::autoPtr
에 약간 유사하지만 서로 다른 목적을 가지고) :WrapperPointer 클래스와
template <typename T>
class ScalarPtr
{
private:
T* m_data;
...
public:
ScalarPtr(T *data): m_data(data)
{ ... }
T& operator*();
T* operator ->();
~ScalarPtr()
{
if(m_data)
delete m_data; ...
}
};
이제 문제는 때 I 이 같은 스택 할당 된 메모리의 개체에 대해이 클래스를 사용하려면 :
float temp=...
ScalarPtr<float> fltPtr(&temp);
순진 방법은 할당을 해제할지 여부를 지정 생성자에서 부울을 전달하는 것입니다 여부를하지만 더 좋은 방법이?
+1 : 부스트는 추가 매개 변수를 사용하여 사용자 정의 삭제자를 'shared_ptr'에 전달하므로 부울 플래그가 동일한 정맥에 도달한다고 생각할 수 있습니다. –
@ Björn : 부스트의 주요 동기는 다른 기능으로 출시해야하는 리소스라고 생각합니다. – visitor