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.