【发布时间】:2014-07-31 08:56:18
【问题描述】:
如何将QtConcurrent::mapped 与成员函数一起用作运算符?目前我正在使用一个可调用对象(这是一个丑陋的解决方案):
struct Vectorizer {
Vectorizer(DialogCreateSamples* cs)
: m_createSamples(cs) { }
typedef QString result_type;
QString operator()(const QString &input)
{
return m_createSamples->generateVector(input);
}
DialogCreateSamples* m_createSamples;
};
QFuture<QString> future = QtConcurrent::mapped(m_inputs,Vectorizer(this));
还尝试传递 lambda 表达式,但编译器说 lambda 中没有定义 result_type。这适用于QtConcurrent::map,因为map 不需要result_type。因此,如果我可以在 lambda 中添加 typedef 它应该可以工作...
【问题讨论】:
标签: c++ qt c++11 lambda qtconcurrent