将bind绑定到传递给QtConcurrent的类成员函数

时间:2011-07-11 19:32:56

标签: c++ qt boost

我正在尝试使用boost将函数传递给QtConcurrent。

QFutureWatcher<GDALDataset> watcher;
QFuture<GDALDataset> future;
GDALDriver *poNITFDriver;

future = QtConcurrent::run(boost::bind(
    &GDALDriver::CreateCopy,
    poNITFDriver,
    pszDstFilename,
    poDataset,
    FALSE,
    papszOptions,
    pfnProgress,
    NULL
));
watcher.setFuture(future);

其中poNITFDriver是包含该方法的类的实例。

我在这里做错了什么?我得到以下编译错误:

  

错误:以后operator=QtConcurrent::run(FunctionObject) = FunctionObject

不匹配= boost::_bi::bind_t<GDALDataset*, boost::_mfi::mf6<GDALDataset*, GDALDriver, const char*, GDALDataset*, int, char**, int (*)(double, const char*, void*), void*>, boost::_bi::list7<boost::_bi::value<GDALDriver*>, boost::_bi::value<const char*>, boost::_bi::value<GDALDataset*>, boost::_bi::value<bool>, boost::_bi::value<char**>, boost::_bi::value<int (*)(double, const char*, void*)>, boost::_bi::value<long int> > >

0 个答案:

没有答案