0
今天我想使用boost :: scoped_ptr指向boost :: thread。提升作用域指针提升线程
在我Thread.h我boost::scoped_ptr<boost::thread> m_thread
,在我Thread.cpp有一个功能create()
其中的boost ::线程的创建应该发生。 我试过Thread::m_thread (new boost::thread(attr, boost::bind(%Thread::run, this)));
,但毫不奇怪,它没有奏效。
我无法弄清楚自己(或通过使用boost文档)我该怎么做,因为我不完全了解scoped_ptr和它的工作原理。 之前我曾经使用过一个原始指针,它工作正常,但我现在不允许使用它。
谢谢你的时间!
这几乎是我所尝试的以及我的问题中所陈述的内容,如果我没有遗漏某些东西。 ;) 我的错误是关于m_thread的定义和它说:_error C2064:术语不计算为服用1 arguments_ 这是有关与'主题:: m_thread线(新的boost ::线程函数(ATTR, boost :: bind(&Thread :: run,this)));' – DenverCoder21
嘿,'m_thread'在** Thread.h **中声明,并在** Thread.cpp **中调用'create()'函数。然而,这个问题(很可能是)在创建一个线程对象之后,'m_thread'已经在内部定义了一个默认值,因此不能在'create()'函数中被覆盖。我在'create()'中创建了另一个名为'tmp'的'scoped_ptr',并将'boost :: thread'赋值给它,然后用'm_thread'交换它,并在完成'创建()'。可能不是最美丽的事情,但为我工作。 感谢您的帮助! – DenverCoder21