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