1 #ifndef QT_UTILITIES_COMPAT_H
2 #define QT_UTILITIES_COMPAT_H
8 #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
9 #define QT_UTILITIES_USE_Q_STRING_VIEW
14 #ifdef QT_UTILITIES_USE_Q_STRING_VIEW
15 #include <QStringView>
23 #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
31 #ifdef QT_UTILITIES_USE_Q_STRING_VIEW
55 #ifdef QT_UTILITIES_USE_Q_STRING_VIEW
56 return QStringView(str).mid(pos, n);
58 return str.midRef(pos, n);
65 template <
class... SplitArgs>
inline auto splitRef(
const QString &str, SplitArgs &&...args)
67 #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
68 return QStringView(str).split(std::forward<SplitArgs>(args)...);
69 #elif QT_VERSION >= QT_VERSION_CHECK(5, 4, 0)
70 return str.splitRef(std::forward<SplitArgs>(args)...);
72 return str.split(std::forward<SplitArgs>(args)...);
#define QT_UTILITIES_USE_Q_STRING_VIEW
StringView makeStringView(const QString &str)
Makes either a QStringView or a QStringRef depending on the Qt version.
StringView midRef(const QString &str, int pos, int n=-1)
Makes either a QStringView or a QStringRef depending on the Qt version, applying "mid()" parameters.
auto splitRef(const QString &str, SplitArgs &&...args)
Splits str into QStringViews, QStringRefs or QStrings depending on the Qt version.