我看不出在 C++11 中使用复制和交换习语有什么意义。如果我需要一个句柄,我可以使用unique_ptr
or shared_ptr
。如果我需要一个对象集合,我可以只使用vector
or string
。
struct Relax
{
shared_ptr<Texture> resource;
public:
/* rest of stuff */
};
对我来说,复制和交换习语听起来像是一个毫无意义的思考练习,充满了等待发生的错误。
担心异常
我是否需要担心自我分配?过早优化是万恶之源
我错过了
swap
在班级的构造函数中调用某个地方的地方吗?也许我忘记了
delete
某个地方?
假设我有一个令人信服的理由来使用手动内存管理。还有分配器,交换指针等。
在现代 C++中,我什么时候需要进行手动内存管理(new
,delete
)wrt 复制和交换?