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
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);
65template <
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.