jww*_*jww 6 c++ rvalue rvalue-reference c++11
我读完了Thomas Becker的"C++ Rvalue References".关于Rvalues和Rvalue参考,我有几个问题.
假设我有一个简单的数组类:
template <class T>
MyArray
{
...
T* m_ptr; // Pointer to elements
size_t m_count; // Count of elements
};
Run Code Online (Sandbox Code Playgroud)
进一步假设它提供:
#if(__cplusplus >= 201103L)
MyArray(MyArray&& t)
: m_ptr(std::move(t.m_ptr)), m_count(std::move(t.m_count))
{
t.m_ptr = NULL;
t.m_count = 0;
}
MyArray operator=(MyArray&& t)
{
std::swap(*this, t);
return *this;
}
#endif
Run Code Online (Sandbox Code Playgroud)
现在,假设我有一个不添加新数据成员的派生类:
MyImprovedArray : public MyArray
{
...
};
Run Code Online (Sandbox Code Playgroud)
需要什么MyImprovedArray?
它需要MyImprovedArray(MyImprovedArray&&)和MyImprovedArray& operator=(MyImprovedArray&&)吗?如果是这样,它只需要执行基类std::move吗?或者它也需要执行std::swap吗?
MyImprovedArray(MyImprovedArray&& t)
: MyArray(t)
{
}
Run Code Online (Sandbox Code Playgroud)