Open githubuser0xFFFF opened 1 month ago
Hi,
Wow, first for all, let me say I am a fan of your work (Advanced Docking System).
I did not know this project was (still) used. I stopped using it a few years ago because I changed jobs and now I don't use Qt at all.
Having said that, I just saw that I had a local branch called vs2019_fixes
, which I just pushed here:
https://github.com/juangburgos/QDeferred/pull/10
Please check if that works, otherwise I can take a deeper look.
These issues are normally compilers (and compiler versions) being picky with templates, is hard to make all of them happy.
Hi,
Thank you for the hint with the branch. I merged the branch into master but it did not fix the issue. Even compiling the libray itself with MSVC19 requires CONFIG += c++20
. Compiling your library with CONFIG += c++17
triggers the following error:
C:\CodingXP\cetoni_third_party\QDeferred\src\qdeferreddata.hpp(681): error C2059: syntax error: ';'
C:\CodingXP\cetoni_third_party\QDeferred\src\qdeferreddata.hpp(662): note: while compiling class template member function 'QDeferredData<>::DeferredAllCallbacks *QDeferredData<>::getCallbacksForThread(void)'
C:\CodingXP\cetoni_third_party\QDeferred\src\qdeferreddata.hpp(250): note: see reference to function template instantiation 'QDeferredData<>::DeferredAllCallbacks *QDeferredData<>::getCallbacksForThread(void)' being compiled
C:\CodingXP\cetoni_third_party\QDeferred\src\qdeferreddata.hpp(195): note: while compiling class template member function 'QDeferredData<>::QDeferredData(void)'
C:\CodingXP\cetoni_third_party\QDeferred\src\qdeferred.hpp(146): note: see reference to function template instantiation 'QDeferredData<>::QDeferredData(void)' being compiled
C:\CodingXP\cetoni_third_party\QDeferred\src\qdeferred.hpp(144): note: while compiling class template member function 'QDeferred<>::QDeferred(void)'
..\..\QDeferred\src\qlambdathreadworkerdata.cpp(159): note: see reference to function template instantiation 'QDeferred<>::QDeferred(void)' being compiled
C:\CodingXP\cetoni_third_party\QDeferred\src\qdeferred.hpp(368): note: see reference to class template instantiation 'QDeferred<>' being compiled
C:\CodingXP\cetoni_third_party\QDeferred\src\qdeferreddata.hpp(682): error C2143: syntax error: missing ';' before '}'
C:\CodingXP\cetoni_third_party\QDeferred\src\qdeferreddata.hpp(682): error C2059: syntax error: '}'
C:\CodingXP\cetoni_third_party\QDeferred\src\qdeferreddata.hpp(684): error C2059: syntax error: 'return'
C:\CodingXP\cetoni_third_party\QDeferred\src\qdeferreddata.hpp(685): error C2059: syntax error: '}'
C:\CodingXP\cetoni_third_party\QDeferred\src\qdeferreddata.hpp(685): error C2143: syntax error: missing ';' before '}'
If the project is not actively developed anymore I will stay with CONFIG += c++20
. Thank you for your response.
Hi,
thank you for this great library. We use it for some time now with MinGW 11 (gcc 11.2) with the qmake config option C++17. Now we switched to MSVC19 compiler an see build issues. The only way to fix these issues is to switch to C++20 for MSVC.
On the project page you write "This library requires C++11." Is this still valid?
This is the code that triggers the compiler error for MSVC:
An this is the error:
When using MinGW with C++17 or when switching to C++20 for MSVC19 compiler, the code compiles fine. That would indicate, that C++ 20 is required instead of C++11.