QtConcurrent::run geht nicht
-
Hallo,
ich bekomme immer einen error :
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Details
Fehler C2280 "QtConcurrent::RunFunctionTaskBase<void>::RunFunctionTaskBase(void)" : Es wurde versucht, auf eine gelöschte Funktion zu verweisen C:\Users\marku\source\repos\Qt-nodeeditor-cpm\out\build\Qt-nodeeditor-cpm C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h 109C:\Users\marku\source\repos\Qt-nodeeditor-cpm\src\main.cpp(456): note: Siehe Verweis auf die gerade kompilierte Instanziierung "QFuture<void> QtConcurrent::run<void(__cdecl &)(void),>(Function)" der Funktions-Vorlage. with [ Function=void (__cdecl &)(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentrun.h(61): note: Siehe Verweis auf die gerade kompilierte Instanziierung "QFuture<void> QtConcurrent::run<void(__cdecl &)(void),>(QThreadPool *,Function)" der Funktions-Vorlage. with [ Function=void (__cdecl &)(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentrun.h(41): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::TaskResolver<void (__cdecl *)(void)>". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(217): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::TaskResolverHelper<std::integral_constant<bool,true>,Function>". with [ Function=void (__cdecl *)(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(206): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::NonPromiseTaskResolver<Function>". with [ Function=void (__cdecl *)(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(177): note: beim Kompilieren der Klasse Vorlage-Memberfunktion "QFuture<void> QtConcurrent::NonPromiseTaskResolver<Function>::run(std::tuple<void (__cdecl *)(void)> &&,const QtConcurrent::TaskStartParameters &)" with [ Function=void (__cdecl *)(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(178): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::StoredFunctionCall<Function>". with [ Function=void (__cdecl *)(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(107): note: beim Kompilieren der Klasse Vorlage-Memberfunktion "QtConcurrent::StoredFunctionCall<Function>::StoredFunctionCall(std::tuple<void (__cdecl *)(void)> &&)" with [ Function=void (__cdecl *)(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(178): note: Ersten Verweis auf "QtConcurrent::StoredFunctionCall<Function>::StoredFunctionCall" in "QtConcurrent::NonPromiseTaskResolver<Function>::run" anzeigen with [ Function=void (__cdecl *)(void) ] ninja: build stopped: subcommand failed.
egal was ich mache es kommt immer der Fehler. Kann mir jemand ein einfaches Beispiel zeigen. Ich habe es mal so probiert:
void loop() { for (int i = 0; i < 10; i++) { qInfo() << "Loop" << i << " on: " << QThread::currentThread(); } }
auto future = QtConcurrent::run(loop);
aber es geht nicht mit map kann ich es verwenden nur nicht mit run. Ich weis nicht was ich falsch mache, ich hoffe es kann mir jemand helfen.
Danke -
@Kirito-Usaki said in QtConcurrent::run geht nicht:
Kann mir jemand ein einfaches Beispiel zeigen
dafür habe ich explizit dieses Projekt gemacht:
https://github.com/DeiVadder/QtThreadExampleConcurrent hat seinen eigenen Unterordner
Das hier:
QtConcurrent::run(loop);
sieht mir nicht nach nem gültigen Funktions Pointer aus
-
@J-Hilk Danke für die Schnelle Antwort. Bei deinem Beispiel bekomme ich die gleichen Fehler:
C:\Qt\6.5.0\msvc2019_64\include\QtCore\qfuture_impl.h:180: Fehler: C2510: "decay_t<MainWindow *>": Der linke Teil von "::" muss eine Klasse/Struktur/Union sein C:\Qt\6.5.0\msvc2019_64\include\QtCore/qfuture_impl.h(180): error C2510: "decay_t<MainWindow *>": Der linke Teil von "::" muss eine Klasse/Struktur/Union sein C:\Qt\6.5.0\msvc2019_64\include\QtCore/qfuture_impl.h(180): note: der Vorlageninstanziierungskontext (der „lteste zuerst) ist C:\Users\marku\source\repos\QtThreadExample\projects\AllCombined\mainwindow.cpp(142): note: Siehe Verweis auf die gerade kompilierte Instanziierung "auto QtConcurrent::run<MainWindow*,std::pair<quint64,double>(__cdecl MainWindow::* )(void)>(Function &&,std::pair<quint64,double> (__cdecl MainWindow::* &&)(void))" der Funktions-Vorlage. with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentrun.h(61): note: Siehe Verweis auf die gerade kompilierte Instanziierung "auto QtConcurrent::run<_Ty,std::pair<quint64,double>(__cdecl MainWindow::* )(void)>(QThreadPool *,Function &&,std::pair<quint64,double> (__cdecl MainWindow::* &&)(void))" der Funktions-Vorlage. with [ _Ty=MainWindow *, Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentrun.h(41): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::TaskResolver<MainWindow *,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(217): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::TaskResolverHelper<std::integral_constant<bool,false>,Function,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(212): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::PromiseTaskResolver<Function,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(189): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtPrivate::ArgResolver<Function>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtCore\qfuture_impl.h:181: Fehler: C3770: "unknown-type": ist keine gltige Basisklasse C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:189: Fehler: C3083: "IsPromise": Das Symbol links neben "::" muss ein Typ sein. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:189: Fehler: C2039: "value" ist kein Member von "QtPrivate::ArgResolver<Function>". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(189): error C2039: "value" ist kein Member von "QtPrivate::ArgResolver<Function>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(189): note: Siehe Deklaration von "QtPrivate::ArgResolver<Function>" with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:195: Fehler: C2039: "PromiseType" ist kein Member von "QtPrivate::ArgResolver<Function>". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(195): error C2039: "PromiseType" ist kein Member von "QtPrivate::ArgResolver<Function>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(189): note: Siehe Deklaration von "QtPrivate::ArgResolver<Function>" with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(195): note: der Vorlageninstanziierungskontext (der „lteste zuerst) ist C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentrun.h(41): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::TaskResolver<MainWindow *,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(217): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::TaskResolverHelper<std::integral_constant<bool,false>,Function,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(212): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::PromiseTaskResolver<Function,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(194): note: beim Kompilieren der Klasse Vorlage-Memberfunktion "auto QtConcurrent::PromiseTaskResolver<Function,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>::run(std::tuple<MainWindow *,std::pair<quint64,double> (__cdecl MainWindow::* )(void)> &&,const QtConcurrent::TaskStartParameters &)" with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:195: Fehler: C2061: Syntaxfehler: Bezeichner "PromiseType" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2065: "PromiseType": nichtdeklarierter Bezeichner C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2923: "QtConcurrent::StoredFunctionCallWithPromise": "PromiseType" ist kein gltiges Vorlage-Typargument fr Parameter "PromiseType". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2923: "QtConcurrent::StoredFunctionCallWithPromise": "PromiseType" ist kein gltiges Vorlage-Typargument fr Parameter "PromiseType". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): note: Siehe Deklaration von "PromiseType" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2641: Fr "QtConcurrent::StoredFunctionCallWithPromise" k”nnen keine Vorlagenargumente abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2780: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(std::tuple<decay<_Ty>::type,decay<_Types>::type...> &&,std::integer_sequence<size_t,Is...>)" erwartet, dass 2 Argumente - 1 angegeben werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2780: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(std::tuple<decay<_Ty>::type,decay<_Types>::type...> &&,std::integer_sequence<size_t,Is...>)" erwartet, dass 2 Argumente - 1 angegeben werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(161): note: Siehe Deklaration von "QtConcurrent::StoredFunctionCallWithPromise" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2783: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(std::tuple<decay<_Ty>::type,decay<_Types>::type...> &&)": Das Vorlage-Argument fr "Function" konnte nicht abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2783: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(std::tuple<decay<_Ty>::type,decay<_Types>::type...> &&)": Das Vorlage-Argument fr "Function" konnte nicht abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(147): note: Siehe Deklaration von "QtConcurrent::StoredFunctionCallWithPromise" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2783: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(std::tuple<decay<_Ty>::type,decay<_Types>::type...> &&)": Das Vorlage-Argument fr "PromiseType" konnte nicht abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2783: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(std::tuple<decay<_Ty>::type,decay<_Types>::type...> &&)": Das Vorlage-Argument fr "PromiseType" konnte nicht abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(147): note: Siehe Deklaration von "QtConcurrent::StoredFunctionCallWithPromise" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2783: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(Function &&,Args &&...)": Das Vorlage-Argument fr "PromiseType" konnte nicht abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2783: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(Function &&,Args &&...)": Das Vorlage-Argument fr "PromiseType" konnte nicht abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(141): note: Siehe Deklaration von "QtConcurrent::StoredFunctionCallWithPromise" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2784: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...>)": Das Vorlage-Argument fr "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...>" konnte nicht von "std::tuple<MainWindow *,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>" abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2784: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...>)": Das Vorlage-Argument fr "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...>" konnte nicht von "std::tuple<MainWindow *,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>" abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(137): note: Siehe Deklaration von "QtConcurrent::StoredFunctionCallWithPromise" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2514: "QtConcurrent::StoredFunctionCallWithPromise": Klassenvorlage kann nicht erstellt werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2514: "QtConcurrent::StoredFunctionCallWithPromise": Klassenvorlage kann nicht erstellt werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(137): note: Siehe Deklaration von "QtConcurrent::StoredFunctionCallWithPromise" C:\Users\marku\source\repos\QtThreadExample\projects\AllCombined\mainwindow.cpp:142: Fehler: C2440: "Initialisierung": "void" kann nicht in "QFuture<T>" konvertiert werden C:\Users\marku\source\repos\QtThreadExample\projects\AllCombined\mainwindow.cpp(142): error C2440: "Initialisierung": "void" kann nicht in "QFuture<T>" konvertiert werden with [ T=std::pair<quint64,double> ] C:\Users\marku\source\repos\QtThreadExample\projects\AllCombined\mainwindow.cpp:142: Ausdruck vom Typ void kann nicht in andere Typen konvertiert werden C:\Qt\6.5.0\msvc2019_64\include\QtCore\qfuture_impl.h:180: Fehler: C2510: "decay_t<MainWindow *>": Der linke Teil von "::" muss eine Klasse/Struktur/Union sein C:\Qt\6.5.0\msvc2019_64\include\QtCore/qfuture_impl.h(180): error C2510: "decay_t<MainWindow *>": Der linke Teil von "::" muss eine Klasse/Struktur/Union sein C:\Qt\6.5.0\msvc2019_64\include\QtCore/qfuture_impl.h(180): note: der Vorlageninstanziierungskontext (der „lteste zuerst) ist C:\Users\marku\source\repos\QtThreadExample\projects\QtConcurrent\mainwindow.cpp(52): note: Siehe Verweis auf die gerade kompilierte Instanziierung "auto QtConcurrent::run<MainWindow*,std::pair<quint64,double>(__cdecl MainWindow::* )(void)>(Function &&,std::pair<quint64,double> (__cdecl MainWindow::* &&)(void))" der Funktions-Vorlage. with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentrun.h(61): note: Siehe Verweis auf die gerade kompilierte Instanziierung "auto QtConcurrent::run<_Ty,std::pair<quint64,double>(__cdecl MainWindow::* )(void)>(QThreadPool *,Function &&,std::pair<quint64,double> (__cdecl MainWindow::* &&)(void))" der Funktions-Vorlage. with [ _Ty=MainWindow *, Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentrun.h(41): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::TaskResolver<MainWindow *,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(217): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::TaskResolverHelper<std::integral_constant<bool,false>,Function,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(212): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::PromiseTaskResolver<Function,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(189): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtPrivate::ArgResolver<Function>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtCore\qfuture_impl.h:181: Fehler: C3770: "unknown-type": ist keine gltige Basisklasse C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:189: Fehler: C3083: "IsPromise": Das Symbol links neben "::" muss ein Typ sein. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:189: Fehler: C2039: "value" ist kein Member von "QtPrivate::ArgResolver<Function>". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(189): error C2039: "value" ist kein Member von "QtPrivate::ArgResolver<Function>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(189): note: Siehe Deklaration von "QtPrivate::ArgResolver<Function>" with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:195: Fehler: C2039: "PromiseType" ist kein Member von "QtPrivate::ArgResolver<Function>". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(195): error C2039: "PromiseType" ist kein Member von "QtPrivate::ArgResolver<Function>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(189): note: Siehe Deklaration von "QtPrivate::ArgResolver<Function>" with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(195): note: der Vorlageninstanziierungskontext (der „lteste zuerst) ist C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentrun.h(41): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::TaskResolver<MainWindow *,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(217): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::TaskResolverHelper<std::integral_constant<bool,false>,Function,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(212): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::PromiseTaskResolver<Function,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>". with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(194): note: beim Kompilieren der Klasse Vorlage-Memberfunktion "auto QtConcurrent::PromiseTaskResolver<Function,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>::run(std::tuple<MainWindow *,std::pair<quint64,double> (__cdecl MainWindow::* )(void)> &&,const QtConcurrent::TaskStartParameters &)" with [ Function=MainWindow * ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:195: Fehler: C2061: Syntaxfehler: Bezeichner "PromiseType" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2065: "PromiseType": nichtdeklarierter Bezeichner C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2923: "QtConcurrent::StoredFunctionCallWithPromise": "PromiseType" ist kein gltiges Vorlage-Typargument fr Parameter "PromiseType". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2923: "QtConcurrent::StoredFunctionCallWithPromise": "PromiseType" ist kein gltiges Vorlage-Typargument fr Parameter "PromiseType". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): note: Siehe Deklaration von "PromiseType" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2641: Fr "QtConcurrent::StoredFunctionCallWithPromise" k”nnen keine Vorlagenargumente abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2780: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(std::tuple<decay<_Ty>::type,decay<_Types>::type...> &&,std::integer_sequence<size_t,Is...>)" erwartet, dass 2 Argumente - 1 angegeben werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2780: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(std::tuple<decay<_Ty>::type,decay<_Types>::type...> &&,std::integer_sequence<size_t,Is...>)" erwartet, dass 2 Argumente - 1 angegeben werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(161): note: Siehe Deklaration von "QtConcurrent::StoredFunctionCallWithPromise" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2783: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(std::tuple<decay<_Ty>::type,decay<_Types>::type...> &&)": Das Vorlage-Argument fr "Function" konnte nicht abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2783: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(std::tuple<decay<_Ty>::type,decay<_Types>::type...> &&)": Das Vorlage-Argument fr "Function" konnte nicht abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(147): note: Siehe Deklaration von "QtConcurrent::StoredFunctionCallWithPromise" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2783: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(std::tuple<decay<_Ty>::type,decay<_Types>::type...> &&)": Das Vorlage-Argument fr "PromiseType" konnte nicht abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2783: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(std::tuple<decay<_Ty>::type,decay<_Types>::type...> &&)": Das Vorlage-Argument fr "PromiseType" konnte nicht abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(147): note: Siehe Deklaration von "QtConcurrent::StoredFunctionCallWithPromise" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2783: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(Function &&,Args &&...)": Das Vorlage-Argument fr "PromiseType" konnte nicht abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2783: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(Function &&,Args &&...)": Das Vorlage-Argument fr "PromiseType" konnte nicht abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(141): note: Siehe Deklaration von "QtConcurrent::StoredFunctionCallWithPromise" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2784: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...>)": Das Vorlage-Argument fr "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...>" konnte nicht von "std::tuple<MainWindow *,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>" abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2784: "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...> QtConcurrent::StoredFunctionCallWithPromise(QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...>)": Das Vorlage-Argument fr "QtConcurrent::StoredFunctionCallWithPromise<Function,PromiseType,Args...>" konnte nicht von "std::tuple<MainWindow *,std::pair<quint64,double> (__cdecl MainWindow::* )(void)>" abgeleitet werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(137): note: Siehe Deklaration von "QtConcurrent::StoredFunctionCallWithPromise" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:196: Fehler: C2514: "QtConcurrent::StoredFunctionCallWithPromise": Klassenvorlage kann nicht erstellt werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(196): error C2514: "QtConcurrent::StoredFunctionCallWithPromise": Klassenvorlage kann nicht erstellt werden. C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(137): note: Siehe Deklaration von "QtConcurrent::StoredFunctionCallWithPromise" C:\Users\marku\source\repos\QtThreadExample\projects\QtConcurrent\mainwindow.cpp:52: Fehler: C2440: "Initialisierung": "void" kann nicht in "QFuture<T>" konvertiert werden C:\Users\marku\source\repos\QtThreadExample\projects\QtConcurrent\mainwindow.cpp(52): error C2440: "Initialisierung": "void" kann nicht in "QFuture<T>" konvertiert werden with [ T=std::pair<quint64,double> ] C:\Users\marku\source\repos\QtThreadExample\projects\QtConcurrent\mainwindow.cpp(52): note: Ausdruck vom Typ void kann nicht in andere Typen konvertiert werden :-1: Warnung: D9002 : Unbekannte Option "-fconstexpr-steps=1271242" wird ignoriert. :-1: Warnung: D9002 : Unbekannte Option "-fconstexpr-depth=27" wird ignoriert. :-1: Warnung: D9002 : Unbekannte Option "-fconstexpr-steps=1271242" wird ignoriert. :-1: Warnung: D9002 : Unbekannte Option "-fconstexpr-depth=27" wird ignoriert. :-1: Warnung: D9002 : Unbekannte Option "-fconstexpr-steps=1271242" wird ignoriert. :-1: Warnung: D9002 : Unbekannte Option "-fconstexpr-depth=27" wird ignoriert. :-1: Warnung: D9002 : Unbekannte Option "-fconstexpr-steps=1271242" wird ignoriert. :-1: Warnung: D9002 : Unbekannte Option "-fconstexpr-depth=27" wird ignoriert. C:\Users\marku\source\repos\QtThreadExample\projects\ConstExpr\mainwindow.cpp:50: Fehler: C2131: Ausdruck wurde nicht zu einer Konstanten ausgewertet. C:\Users\marku\source\repos\QtThreadExample\projects\ConstExpr\mainwindow.cpp(50): error C2131: Ausdruck wurde nicht zu einer Konstanten ausgewertet. C:\Users\marku\source\repos\QtThreadExample\projects\ConstExpr\mainwindow.cpp(37): note: Der Fehler wurde durch eine Auswertung verursacht, die das Schrittlimit von 1048576 (/constexpr:steps<NUMBER>) berschreitet.
-
@Kirito-Usaki ich muss zu geben, hab das Beispiel nicht gegen Qt6 gegen getestet, kann sein, dass sich was verändert hat.
Mal schauen
-
ah ja, api ist gebrochen worden.
was im Beispiel für Qt5 noch gültig war:
QFuture<QPair<quint64, double>> future = QtConcurrent::run(this,&MainWindow::heavyOperationNoGui);
muss in Qt6 nun:
QFuture<QPair<quint64, double>> future = QtConcurrent::run(&MainWindow::heavyOperationNoGui, this);
sein.
Muss das Beispiel wohl überarbeiten.
-
@J-Hilk Das hat den Fehler darauf reduziert:
C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentstoredfunctioncall.h:109: Fehler: C2280: "QtConcurrent::RunFunctionTaskBase<std::pair<quint64,double>>::RunFunctionTaskBase(void)" : Es wurde versucht, auf eine gel”schte Funktion zu verweisen C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(109): error C2280: "QtConcurrent::RunFunctionTaskBase<std::pair<quint64,double>>::RunFunctionTaskBase(void)" : Es wurde versucht, auf eine gel”schte Funktion zu verweisen C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentrunbase.h(98): note: Compiler hat hier "QtConcurrent::RunFunctionTaskBase<std::pair<quint64,double>>::RunFunctionTaskBase" generiert C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentrunbase.h(98): note: "QtConcurrent::RunFunctionTaskBase<std::pair<quint64,double>>::RunFunctionTaskBase(void)": Die Funktion wurde implizit gel”scht, weil eine Basisklasse "QRunnable" keinen geeigneten Wert fr "Standardkonstruktor" aufweist oder die šberladungsaufl”sung mehrdeutig war. C:\Qt\6.5.0\msvc2019_64\include\QtCore/qrunnable.h(12): note: Siehe Deklaration von "QRunnable" C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(109): note: der Vorlageninstanziierungskontext (der „lteste zuerst) ist ..\QtConcurrent\mainwindow.cpp(53): note: Siehe Verweis auf die gerade kompilierte Instanziierung "QFuture<T> QtConcurrent::run<std::pair<quint64,double>(__cdecl MainWindow::* )(void),MainWindow*>(Function &&,MainWindow *&&)" der Funktions-Vorlage. with [ T=std::pair<quint64,double>, Function=std::pair<quint64,double> (__cdecl MainWindow::* )(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentrun.h(61): note: Siehe Verweis auf die gerade kompilierte Instanziierung "QFuture<T> QtConcurrent::run<_Ty,MainWindow*>(QThreadPool *,Function &&,MainWindow *&&)" der Funktions-Vorlage. with [ T=std::pair<quint64,double>, _Ty=std::pair<quint64,double> (__cdecl MainWindow::* )(void), Function=std::pair<quint64,double> (__cdecl MainWindow::* )(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent\qtconcurrentrun.h(41): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::TaskResolver<std::pair<quint64,double> (__cdecl MainWindow::* )(void),MainWindow *>". C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(217): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::TaskResolverHelper<std::integral_constant<bool,true>,Function,MainWindow *>". with [ Function=std::pair<quint64,double> (__cdecl MainWindow::* )(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(206): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::NonPromiseTaskResolver<Function,MainWindow *>". with [ Function=std::pair<quint64,double> (__cdecl MainWindow::* )(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(177): note: beim Kompilieren der Klasse Vorlage-Memberfunktion "QFuture<T> QtConcurrent::NonPromiseTaskResolver<Function,MainWindow *>::run(std::tuple<std::pair<quint64,double> (__cdecl MainWindow::* )(void),MainWindow *> &&,const QtConcurrent::TaskStartParameters &)" with [ T=std::pair<quint64,double>, Function=std::pair<quint64,double> (__cdecl MainWindow::* )(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(178): note: Siehe Verweis auf die gerade kompilierte Klasse Vorlage-Instanziierung "QtConcurrent::StoredFunctionCall<Function,MainWindow *>". with [ Function=std::pair<quint64,double> (__cdecl MainWindow::* )(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(107): note: beim Kompilieren der Klasse Vorlage-Memberfunktion "QtConcurrent::StoredFunctionCall<Function,MainWindow *>::StoredFunctionCall(std::tuple<std::pair<quint64,double> (__cdecl MainWindow::* )(void),MainWindow *> &&)" with [ Function=std::pair<quint64,double> (__cdecl MainWindow::* )(void) ] C:\Qt\6.5.0\msvc2019_64\include\QtConcurrent/qtconcurrentstoredfunctioncall.h(178): note: Ersten Verweis auf "QtConcurrent::StoredFunctionCall<Function,MainWindow *>::StoredFunctionCall" in "QtConcurrent::NonPromiseTaskResolver<Function,MainWindow *>::run" anzeigen with [ Function=std::pair<quint64,double> (__cdecl MainWindow::* )(void) ]
Ich installiere gerade Qt 6.5.3 ich hoffe dann gehts.
-
@Kirito-Usaki es gibt 2 Stellen an denen es angepasst werden und ich musste den compiletime-wert von 25 auf 24 reduzieren.
Fix is schon fertig, muss nur repo updaten
ist jetzt geupdated.
-