summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2023-01-02 10:50:17 +0100
committerMarc Mutz <marc.mutz@qt.io>2023-01-03 21:55:21 +0100
commit887d5eddb0e926e12841a9dbe8f425704da25e6d (patch)
treed0a7c834bf92b0a6cc62edb1df9a487dfc529057 /src
parent69ea84fd71d66e095a4d3f581f276fe5b41964a3 (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.h6
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