草庐IT

NeitherCopyableNorMovble

全部标签

c++ - 我应该删除 move 构造函数和智能指针的 move 分配吗?

我正在实现一个简单的智能指针,它基本上跟踪对它处理的指针的引用数。我知道我可以实现move语义,但我认为这没有意义,因为复制智能指针非常便宜。特别是考虑到它带来了产生讨厌的错误的机会。这是我的C++11代码(我省略了一些无关紧要的代码)。也欢迎提出一般性意见。#ifndefSMART_PTR_H_#defineSMART_PTR_H_#includetemplateclassSmartPtr{private:structPtr{T*p_;uint64_tcount_;Ptr(T*p):p_{p},count_{1}{}~Ptr(){deletep_;}};public:SmartPtr

c++ - 我应该删除 move 构造函数和智能指针的 move 分配吗?

我正在实现一个简单的智能指针,它基本上跟踪对它处理的指针的引用数。我知道我可以实现move语义,但我认为这没有意义,因为复制智能指针非常便宜。特别是考虑到它带来了产生讨厌的错误的机会。这是我的C++11代码(我省略了一些无关紧要的代码)。也欢迎提出一般性意见。#ifndefSMART_PTR_H_#defineSMART_PTR_H_#includetemplateclassSmartPtr{private:structPtr{T*p_;uint64_tcount_;Ptr(T*p):p_{p},count_{1}{}~Ptr(){deletep_;}};public:SmartPtr