在c ++中创建不可复制但可移动的对象
就一个问题。看看C ++ Boost库(特别是boost :: thread类)我最后想到:“如何创建一个定义无法复制但可以从函数返回的对象的类?”
那么考虑这个例子,boost :: thread类具有我之前提到的特性,所以可以这样做:
boost::thread make_thread();
void f()
{
boost::thread some_thread=make_thread();
some_thread.join();
}
那么这意味着对象boost :: thread无法复制,但是从函数返回,这是可能的。
这怎么可能????
我想一定不能提供拷贝构造函数,但是如何处理函数返回?它不需要使用复制构造函数???
谢谢
没有找到相关结果
已邀请:
2 个回复
链眷克袒姜
可以单独禁止复制和移动,因此您可以设置可以移动但不能复制的类。 当然,即使你的编译器还不支持移动语义(
,所有移动而不是分配时的复制),有一些神奇的技巧可以让你这样做,所以这可能适用于
即使没有移动语义。
臀夯脖锑