1
我设计一个包装类的重新分配(有点类似std::autoPtr
但我有不同的目的):WrapperPointer类和C++堆栈分配的对象
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; ...
}
};
现在的问题是,当我也想用这个类栈上分配的内存对象是这样的:
float temp=...
ScalarPtr<float> fltPtr(&temp);
用简单的方式是通过在布尔构造函数指定是否要解除或没有,但有没有更好的办法?
+1:Boost使用额外的参数将自定义删除器传递给'shared_ptr',所以他们似乎认为它没事(布尔标志命中相同的静脉)。 –
@Björn:我认为助推的主要动机是需要用不同功能发布的资源。 – visitor