我无法在C ++ 11中看到使用复制和交换习惯用语的任何意义。如果我需要句柄,我可以使用unique_ptr
或shared_ptr
。如果我需要一组对象,我可以vector
或string
。
struct Relax
{
shared_ptr<Texture> resource;
public:
/* rest of stuff */
};
对我而言,复制和交换习语听起来像一个充满了等待发生的错误的毫无意义的思考练习。
担心例外
我是否需要担心自我分配?过早优化是万恶之源
我错过了在班级建设者的某个地方拨打swap
的地方吗?
也许我在某处遗忘了delete
?
我们说我有一个令人信服的理由使用手动内存管理。还有分配器,交换指针等等。
在现代C ++ 中,何时需要进行手动内存管理(new
,delete
)w.r.t copy-and-swap?