1
현재 코드를 병렬 처리하려고하고 있으므로 QtConcurrent::run
을 사용하고 있으며 실행시 선택할 함수를 모른다.QtConcurrent :: run에서 오버로드 된 함수를 사용하는 방법
오버로드 된 함수를 사용하여 실행하는 방법이 있습니까? 아니면 몇 가지 해결 방법을 찾을 수 있습니까? 당신은 단지 static_cast
포인터가 보장 할 수
현재 코드를 병렬 처리하려고하고 있으므로 QtConcurrent::run
을 사용하고 있으며 실행시 선택할 함수를 모른다.QtConcurrent :: run에서 오버로드 된 함수를 사용하는 방법
오버로드 된 함수를 사용하여 실행하는 방법이 있습니까? 아니면 몇 가지 해결 방법을 찾을 수 있습니까? 당신은 단지 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();
}
또는 오른쪽에 하나의 포인터를 얻을에는 모호함이 없다.
좋아, 오버로드에 대한이 작동합니까 : 무효 hello (QString 이름, int 나이) {..} 및 무효 안녕 (QString 이름) {..} 너무? –
ok 나 자신을 알아 냈어. 정적 멤버 대신 함수 앞의 네임 스페이스를 사용해야했다. –