我还没有看到一个同时使用unique_ptr和move-semantics的pimpl示例.
我想将一个CHelper类添加到STL派生容器中,并使用pimpl来隐藏CHelper所做的事情.
这看起来不错吗?
class CDerived : public set<CSomeSharedPtr>, public CHelper
{
//...
};
Run Code Online (Sandbox Code Playgroud)
`
// derived containers need to support both copy and move, so CHelper does too
class CHelper
{
private:
class impl;
unique_ptr<impl> pimpl;
public:
//--- default: need both cotr & cotr (complete class) in order to use unique_ptr<impl>
CHelper();
~CHelper();
//--- copy
CHelper(const CHelper &src); //copy constructor
CHelper& operator=(const CHelper &src);//assignment operator
//--- move
CHelper(CHelper &&src); //move constructor
CHelper& operator=(CHelper &&src);//move operator
//--- expose public …Run Code Online (Sandbox Code Playgroud)