1
我目前正在尝试并行我的代码,因此我使用QtConcurrent::run
,问题是,运行不知道选择哪个函数。如何使用QtConcurrent ::运行重载函数
有没有办法使用重载函数运行或我找到某种解决方法?
我目前正在尝试并行我的代码,因此我使用QtConcurrent::run
,问题是,运行不知道选择哪个函数。如何使用QtConcurrent ::运行重载函数
有没有办法使用重载函数运行或我找到某种解决方法?
你可以只static_cast
指针以确保在这一过程中
void hello(QString name)
{
qDebug() << "Hello" << name << "from" << QThread::currentThread();
}
void hello(int age)
{
qDebug() << "Hello" << age << "from" << QThread::currentThread();
}
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QFuture<void> f1 = run(static_cast<void(*)(QString)>(hello), QString("Alice"));
QFuture<void> f2 = run(static_cast<void(*)(int)>(hello), 42);
f1.waitForFinished();
f2.waitForFinished();
}
或可选择地获得一个指向正确的没有歧义。
好吧,这是否适用于像以下这样的过载:void hello(QString name,int age){..}和void hello(QString name){..}呢? –
确定我自己想出来,只需要在函数前面使用名称空间,而不是静态成员,它调用它 –