首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >boost::thread变量的正向声明

boost::thread变量的正向声明
EN

Stack Overflow用户
提问于 2010-12-29 19:05:18
回答 1查看 2.2K关注 0票数 5

有没有人能告诉我,我们能不能向前声明一个boost::thread变量。thread t(thread);启动一个线程,但是我想在某个地方声明它,并在其他地方启动它。提前谢谢。

当我使用

代码语言:javascript
复制
boost::thread t;
t=boost::thread (thread);

/usr/include/boost/noncopyable.hpp: In copy constructor ‘boost::thread::thread(const boost::thread&)’:
/usr/include/boost/noncopyable.hpp:27: error: ‘boost::noncopyable_::noncopyable::noncopyable(const boost::noncopyable_::noncopyable&)’ is private
/usr/include/boost/thread/thread.hpp:35: error: within this context
thr.cpp: In function ‘int main()’:
thr.cpp:20: note: synthesized method ‘boost::thread::thread(const boost::thread&)’ first required here 
/usr/include/boost/noncopyable.hpp: In member function ‘boost::thread& boost::thread::operator=(const boost::thread&)’:
/usr/include/boost/noncopyable.hpp:28: error: ‘const boost::noncopyable_::noncopyable& boost::noncopyable_::noncopyable::operator=(const boost::noncopyable_::noncopyable&)’ is private
/usr/include/boost/thread/thread.hpp:35: error: within this context
thr.cpp: In function ‘int main()’:
thr.cpp:20: note: synthesized method ‘boost::thread& boost::thread::operator=(const boost::thread&)’ first required here 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-29 19:26:41

据我所知,唯一的方法就是使用threadmove semantics

代码语言:javascript
复制
boost::thread t;  // Will be initialized to `Not-a-Thread`.

// Later...
t = boost::thread(your_callable);
// Now `your_callable()` runs inside a new thread that has been moved to `t`.

编辑:从你发布的错误消息来看,似乎你不能在你的boost版本中使用移动语义。如果是这种情况,我担心您将无法初始化thread实例并在稍后启动它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4553520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档