有沒有一種方法可以確保我的對象在循環緩衝區中被覆蓋之前被刪除?這裏有一些代碼來說明我的問題。boost circular_buffer控股指針
boost::circular_buffer<MyObject*> cBuf(5);
cBuf.push_back(new MyObject()); // cBuf[0]
cBuf.push_back(new MyObject()); // cBuf[1]
cBuf.push_back(new MyObject()); // cBuf[2]
cBuf.push_back(new MyObject()); // cBuf[3]
cBuf.push_back(new MyObject()); // cBuf[4]
// before this overwrite occurs, how do i make sure the pointer
// position cBuf[0] is deleted?
cBuf.push_back(new MyObject()); // this will overwrite position 0
我是停留在石器時代這裏,只能使用gcc 4.4.7,它沒有C++ 11規範,因此沒有'std :: make_unique',所以沒有智能指針 – mike
您可以(也應該)編輯您的問題,而不是在評論中添加重要信息。 – sehe