Details
Description
Code fails to compile with treating warnings as errors feature enabled.
Code example (also attached project):
class MyClass : public QObject { Q_OBJECT public: Q_INVOKABLE QFuture<void> something(const QString &path); };
The problem occurs in the next code in `qfuture.h` file:
template<typename T> struct MetaTypeQFutureHelper<QFuture<T>> { static bool registerConverter() { if constexpr (std::is_same_v<T, void>) return false; return QMetaType::registerConverter<QFuture<T>, QFuture<void>>( [](const QFuture<T> &future) { return QFuture<void>(future); }); } };
Since `something` return void future, everything after first return become to unreachable code.
Attachments
For Gerrit Dashboard: QTBUG-133406 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
628969,3 | QFuture: avoid warnings about unreachable code with /W4 in MSVC | dev | qt/qtbase | Status: MERGED | +2 | 0 |
629478,2 | QFuture: avoid warnings about unreachable code with /W4 in MSVC | 6.9 | qt/qtbase | Status: MERGED | +2 | 0 |
629527,2 | QFuture: avoid warnings about unreachable code with /W4 in MSVC | 6.8 | qt/qtbase | Status: MERGED | +2 | 0 |
629528,2 | QFuture: avoid warnings about unreachable code with /W4 in MSVC | 6.9.0 | qt/qtbase | Status: MERGED | +2 | 0 |
629931,2 | QFuture: avoid warnings about unreachable code with /W4 in MSVC | tqtc/lts-6.5 | qt/tqtc-qtbase | Status: MERGED | +2 | 0 |