SDK 3.13.5 fails on qfutureinterface.h

After the update to the stable SDK

SDK_RELEASE=3.13.5
SDK_RELEASE_CYCLE=Stable
SDK_CONFIG_DIR=SailfishSDK
SDK_VENDOR="Jolla"

I fail to compile the project which uses QtConcurrent with the following output:

In file included from /home/pavel/SailfishOS/mersdk/targets/SailfishOS-5.1.0.11-aarch64.default/usr/include/qt5/QtCore/qfuture.h:41,
                 from /home/pavel/SailfishOS/mersdk/targets/SailfishOS-5.1.0.11-aarch64.default/usr/include/qt5/QtCore/QtCore:100,
                 from /home/pavel/SailfishOS/mersdk/targets/SailfishOS-5.1.0.11-aarch64.default/usr/include/qt5/QtConcurrent/QtConcurrentDepends:3,
                 from /home/pavel/SailfishOS/mersdk/targets/SailfishOS-5.1.0.11-aarch64.default/usr/include/qt5/QtConcurrent/QtConcurrent:3,
                 from ../SubMusic/src/pages/home.cpp:8:
/home/pavel/SailfishOS/mersdk/targets/SailfishOS-5.1.0.11-aarch64.default/usr/include/qt5/QtCore/qfutureinterface.h:282:33: error: expected ‘)’ before ‘initialState’
  282 |     QFutureInterface<void>(State initialState = NoState)
      |                           ~     ^~~~~~~~~~~~~
      |                                 )
/home/pavel/SailfishOS/mersdk/targets/SailfishOS-5.1.0.11-aarch64.default/usr/include/qt5/QtCore/qfutureinterface.h:285:28: error: expected unqualified-id before ‘const’
  285 |     QFutureInterface<void>(const QFutureInterface<void> &other)
      |                            ^~~~~
/home/pavel/SailfishOS/mersdk/targets/SailfishOS-5.1.0.11-aarch64.default/usr/include/qt5/QtCore/qfutureinterface.h:285:28: error: expected ‘)’ before ‘const’
  285 |     QFutureInterface<void>(const QFutureInterface<void> &other)
      |                           ~^~~~~
      |                            )
/home/pavel/SailfishOS/mersdk/targets/SailfishOS-5.1.0.11-aarch64.default/usr/include/qt5/QtCore/qfutureinterface.h: In static member function ‘static QFutureInterface<void> QFutureInterface<void>::canceledResult()’:
/home/pavel/SailfishOS/mersdk/targets/SailfishOS-5.1.0.11-aarch64.default/usr/include/qt5/QtCore/qfutureinterface.h:290:67: error: no matching function for call to ‘QFutureInterface<void>::QFutureInterface(QFutureInterfaceBase::State)’
  290 |     { return QFutureInterface(State(Started | Finished | Canceled)); }
      |                                                                   ^
/home/pavel/SailfishOS/mersdk/targets/SailfishOS-5.1.0.11-aarch64.default/usr/include/qt5/QtCore/qfutureinterface.h:279:7: note: candidate: ‘QFutureInterface<void>::QFutureInterface()’
  279 | class QFutureInterface<void> : public QFutureInterfaceBase
      |       ^~~~~~~~~~~~~~~~~~~~~~

… 22 issues in total, in qfutureinterface.h and qtconcurrentthreadengine.h. It looks like it is enough to simply

#include <QtConcurrent/QtConcurrent>

for the build to fail, and the same applies to the i486 target

I wasn’t able to find ‘Known issues’ in the release announcement, and I’m far from an advanced level of C++ or Qt, but this doesn’t look like something that was caused by the application code.

Any help (even in the form “act as an adult and use real threads“) is appreciated.

I think you are the third to report, after

and @Mister_Magister on irc.

Much newer C++ version (20) that Qt 5.6 was ever meant for, and now a newer compiler that supports more of it.

2 Likes