QtConcurrentのドキュメントから:
QByteArray bytearray = "hello world";
QFuture<QList<QByteArray> > future = QtConcurrent::run(bytearray, &QByteArray::split), ',');
...
QList<QByteArray> result = future.result();
上記のコードスニペットは、std::tr1::bind
(std::bind
> C ++ 11の場合)と同様の方法で関数をバインドしているように見えます。つまり、非静的メンバー関数(QByteArray::split()
)を取り、(後で)それがメンバーであるオブジェクトの特定のインスタンス(として提供したbytearray
)でそれを呼び出します。
Qtはこれをどのように達成しますか?使用していますか、std::tr1::bind
それともboost::bind
舞台裏のどこかですか?
ドキュメントstd::tr1
では、または代わりに使用する場合についても言及していますが、そのコンテキストでのバインドさboost
れた関数の意味を完全には理解していません。上記の状況は、実際には、他の方法で使用する可能性のある他の状況とは異なる/より専門的/単純ですか?tr1
boost
私はソースを通り抜けようとしましたが、すぐに迷子になります!