我有一个地方,使用boost::thread(例如使用boost::asio)可以使得事情工作。
std::vector<boost::shared_ptr<boost::thread> > threads;
for (std::size_t i = 0; i < io_services_.size(); ++i)
{
boost::shared_ptr<boost::thread> thread(new boost::thread(
boost::bind(&boost::asio::io_service::run, io_services_[i])));
threads.push_back(thread);
}
如果我试图在std:thread中使用它,我会得到编译错误:
std::vector<std::thread> threads;
for (std::size_t i = 0; i < this->ioServices.size(); ++i)
{
std::thread thread(&boost::asio::io_service::run, ioServices[i]); // compile error std::thread::thread : no overloaded function takes 2 arguments
threads.push_back(std::move(thread));
}
boost::bind
吗? - Chadstd::thread
构造函数,并提供了两个它不期望的参数。如果您改为使用这两个参数构造一个boost::bind
对象,我预计这将编译并正常工作。 - Chad