diff options
author | Marc Mutz <marc.mutz@qt.io> | 2023-01-02 10:50:17 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2023-01-03 21:55:21 +0100 |
commit | 887d5eddb0e926e12841a9dbe8f425704da25e6d (patch) | |
tree | d0a7c834bf92b0a6cc62edb1df9a487dfc529057 /src | |
parent | 69ea84fd71d66e095a4d3f581f276fe5b41964a3 (diff) |
QString: use inheritance, not template aliases, for arg() constraints
For unknown reasons, using template aliases breaks on some MSVC
versions and a valid arg(std::declval<QStringRef>(),
std::declval<QString>()) call gets SFINAE'd out.
Partially reverts e0963f7d6a31dd26629a9553c0fe00d0c8b2f22f.
Add a test.
Fixes: QTBUG-109723
Change-Id: I832357c91efa4caafce40b50dd76a700de2c58d7
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/text/qstring.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h index f1363903f5..be1f822985 100644 --- a/src/corelib/text/qstring.h +++ b/src/corelib/text/qstring.h @@ -361,11 +361,11 @@ public: #endif private: template <typename T> - using is_convertible_to_view_or_qstring = std::integral_constant<bool, + struct is_convertible_to_view_or_qstring + : std::integral_constant<bool, std::is_convertible<T, QString>::value || std::is_convertible<T, QStringView>::value || - std::is_convertible<T, QLatin1String>::value - >; + std::is_convertible<T, QLatin1String>::value> {}; public: template <typename...Args> Q_REQUIRED_RESULT |