有没有一种方法可以确保我的对象在循环缓冲区中被覆盖之前被删除?这里有一些代码来说明我的问题。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