【发布时间】:2011-11-16 17:25:32
【问题描述】:
QByteArray bytearray = "hello world";
QFuture<QList<QByteArray> > future = QtConcurrent::run(bytearray, &QByteArray::split), ',');
...
QList<QByteArray> result = future.result();
上面的代码 sn-p 似乎以类似于std::tr1::bind 的方式绑定一个函数(std::bind for > C++11)。也就是说,它采用非静态成员函数 (QByteArray::split()) 并(稍后)在它所属的对象的特定实例上调用它(我们提供为 bytearray)。
Qt 是如何做到这一点的?是在幕后使用std::tr1::bind 还是boost::bind?
The documentation 也指代您使用 std::tr1 或 boost 的情况,但我不完全理解 绑定函数 在这种情况下的含义。上述情况实际上是否与您可能使用tr1 或boost 的其他情况不同/更专业/更简单?
我试图通过源头找到自己的方式,但很快就迷路了!
【问题讨论】:
标签: c++ qt c++11 qt4 qtconcurrent