Класс QStringView
Класс QStringView предоставляет унифицированный вид на UTF-16 строки с подмножеством функций класса QString с чтением только для чтения. Подробнее...
| Заголовок: | #include <QStringView> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| С момента: | Qt 5.10 |
Примечание: Все функции в этом классе являются повторно входящими.
Типы
| const_iterator | |
| const_pointer | |
| const_reference | |
| const_reverse_iterator | |
| difference_type | |
| iterator | |
| pointer | |
| reference | |
| reverse_iterator | |
| size_type | |
| storage_type | |
| value_type |
Общедоступные функции
| QStringView(const Container &str) | |
| QStringView(const QString &str) | |
| QStringView(const Char *str) | |
| QStringView(const Char (&)[N] string = N) | |
| QStringView(const Char *first, const Char *last) | |
| QStringView(const Char *str, qsizetype len) | |
| QStringView(std::nullptr_t) | |
| QStringView() | |
| QString | arg(Args &&... args) const |
| QChar | at(qsizetype n) const |
| QChar | back() const |
| QStringView::const_iterator | begin() const |
| QStringView::const_iterator | cbegin() const |
| QStringView::const_iterator | cend() const |
| void | chop(qsizetype length) |
| QStringView | chopped(qsizetype length) const |
| int | compare(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | compare(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | compare(QChar ch) const |
| int | compare(QChar ch, Qt::CaseSensitivity cs) const |
| QStringView::const_iterator | constBegin() const |
| QStringView::const_pointer | constData() const |
| QStringView::const_iterator | constEnd() const |
| bool | contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | contains(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const |
| qsizetype | count(const QRegularExpression &re) const |
| qsizetype | count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QStringView::const_reverse_iterator | crbegin() const |
| QStringView::const_reverse_iterator | crend() const |
| QStringView::const_pointer | data() const |
| bool | empty() const |
| QStringView::const_iterator | end() const |
| bool | endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | endsWith(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | endsWith(QChar ch) const |
| bool | endsWith(QChar ch, Qt::CaseSensitivity cs) const |
| QStringView | first(qsizetype n) const |
| QChar | first() const |
| QChar | front() const |
| qsizetype | indexOf(QChar c, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | indexOf(QLatin1String l1, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const |
| bool | isEmpty() const |
| bool | isNull() const |
| bool | isRightToLeft() const |
| bool | isValidUtf16() const |
| QStringView | last(qsizetype n) const |
| QChar | last() const |
| qsizetype | lastIndexOf(QChar c, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | lastIndexOf(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | lastIndexOf(QLatin1String l1, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const |
| qsizetype | lastIndexOf(const QRegularExpression &re, qsizetype from, QRegularExpressionMatch *rmatch = nullptr) const |
| qsizetype | length() const |
| QStringView::const_reverse_iterator | rbegin() const |
| QStringView::const_reverse_iterator | rend() const |
| qsizetype | size() const |
| QStringView | sliced(qsizetype pos, qsizetype n) const |
| QStringView | sliced(qsizetype pos) const |
| QList<QStringView> | split(QStringView sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QList<QStringView> | split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QList<QStringView> | split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const |
| bool | startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | startsWith(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | startsWith(QChar ch) const |
| bool | startsWith(QChar ch, Qt::CaseSensitivity cs) const |
| CFStringRef | toCFString() const |
| double | toDouble(bool *ok = nullptr) const |
| float | toFloat(bool *ok = nullptr) const |
| int | toInt(bool *ok = nullptr, int base = 10) const |
| QByteArray | toLatin1() const |
| QByteArray | toLocal8Bit() const |
| long | toLong(bool *ok = nullptr, int base = 10) const |
| qlonglong | toLongLong(bool *ok = nullptr, int base = 10) const |
| NSString * | toNSString() const |
| short | toShort(bool *ok = nullptr, int base = 10) const |
| QString | toString() const |
| uint | toUInt(bool *ok = nullptr, int base = 10) const |
| ulong | toULong(bool *ok = nullptr, int base = 10) const |
| qulonglong | toULongLong(bool *ok = nullptr, int base = 10) const |
| ushort | toUShort(bool *ok = nullptr, int base = 10) const |
| QList<uint> | toUcs4() const |
| QByteArray | toUtf8() const |
| qsizetype | toWCharArray(wchar_t *array) const |
| decltype(qTokenize(*this, std::forward<Needle>(needle), flags...)) | tokenize(Needle &&sep, Flags... flags) const |
| QStringView | trimmed() const |
| void | truncate(qsizetype length) |
| const QStringView::storage_type * | utf16() const |
| QChar | operator[](qsizetype n) const |
Статические публичные члены
| QStringView | fromArray(const Char (&)[Size] string = Size) |
Связанные нечлены
| size_t | qHash(QStringView key, size_t seed = 0) |
| bool | operator!=(QStringView lhs, QStringView rhs) |
| bool | operator<(QStringView lhs, QStringView rhs) |
| bool | operator<=(QStringView lhs, QStringView rhs) |
| bool | operator==(QStringView lhs, QStringView rhs) |
| bool | operator>(QStringView lhs, QStringView rhs) |
| bool | operator>=(QStringView lhs, QStringView rhs) |
Подробное описание
QStringView ссылается на смежный участок строки UTF-16, она не владеет ею. Она действует как тип интерфейса для всех типов строк UTF-16, без необходимости сначала создавать QString.
Строка UTF-16 может быть представлена как массив (или совместимая с массивом структура данных, такая как QString, std::basic_string и т. д.) QChar, ushort, char16_t или (на платформах, таких как Windows, где это тип 16 бит) wchar_t.
QStringView разработана как тип интерфейса; её основное применение — в качестве типа параметра функции. При использовании QStringView в качестве автоматических переменных или членов данных, необходимо позаботиться о том, чтобы данные строки, на которые ссылается QStringView (например, принадлежащие QString), существовали дольше, чем QStringView, на всех путях кода, чтобы предотвратить ситуации, когда строковый просмотр ссылается на удалённые данные.
При использовании как типа интерфейса QStringView позволяет одной функции принимать различные источники данных строк UTF-16. Одна функция, принимающая QStringView, таким образом, заменяет три перегрузки функций (принимающие QString и (const QChar*, int)), одновременно позволяя передавать в функцию ещё больше источников данных строк, таких как u"Hello World", a char16_t строковая литерал.
QStringView следует передавать по значению, а не по ссылке-константе:
void myfun1(QStringView sv); // preferred
void myfun2(const QStringView &sv); // compiles and works, but slower Если вы хотите предоставить пользователям максимальную свободу в том, какие строки они могут передавать вашей функции, добавьте к перегрузке QStringView перегрузки для
-
QChar: этот перегрузчик может делегировать вызов версии QStringView:
void fun(QChar ch) { fun(QStringView(&ch, 1)); }хотя по техническим причинам QStringView не может предоставить конструктор QChar самостоятельно.
- QString: если вы сохраняете неизменную копию строки и хотите воспользоваться неявным совместным использованием QString.
- QLatin1String: если вы можете реализовать функцию без преобразования QLatin1String в UTF-16; пользователи ожидают, что функция, перегруженная для QLatin1String, будет использовать строго меньше выделений памяти, чем семантически эквивалентный вызов версии QStringView, включающий построение QString из QLatin1String.
QStringView также может использоваться в качестве значения возврата функции. Если вы вызываете функцию, возвращающую QStringView, обратите особое внимание на то, чтобы не хранить QStringView дольше, чем функция гарантирует существование ссылаемых данных. Если есть сомнения, получите сильную ссылку на данные, вызвав toString() для преобразования QStringView в QString.
QStringView является литеральным типом, но поскольку он хранит данные как char16_t, итерация не constexpr (приведения типов с const char16_t* к const QChar*, что запрещено в constexpr функциях). Вы можете использовать индексированный цикл и/или utf16() в constexpr контекстах вместо этого.
См. также QString.
Документация по типам членов
QStringView::const_iterator
Этот typedef предоставляет итератор по типу STL для QStringView.
См. также iterator и const_reverse_iterator.
QStringView::const_pointer
Псевдоним для value_type *. Предоставлен для совместимости со STL.
QStringView::const_reference
Псевдоним для value_type &. Предоставлен для совместимости со STL.
QStringView::const_reverse_iterator
Этот typedef предоставляет обратный итератор по типу STL для QStringView.
См. также reverse_iterator и const_iterator.
QStringView::difference_type
Псевдоним для std::ptrdiff_t. Предоставлен для совместимости со STL.
QStringView::iterator
Этот typedef предоставляет итератор по типу STL для QStringView.
QStringView не поддерживает изменяемые итераторы, поэтому он совпадает с const_iterator.
См. также const_iterator и reverse_iterator.
QStringView::pointer
Псевдоним для value_type *. Предоставлен для совместимости со STL.
QStringView не поддерживает изменяемые указатели, поэтому он совпадает с const_pointer.
QStringView::reference
Псевдоним для value_type &. Предоставлен для совместимости со STL.
QStringView не поддерживает изменяемые ссылки, поэтому он совпадает с const_reference.
QStringView::reverse_iterator
Этот typedef предоставляет обратный итератор по типу STL для QStringView.
QStringView не поддерживает изменяемые обратные итераторы, поэтому он совпадает с const_reverse_iterator.
См. также const_reverse_iterator и iterator.
QStringView::size_type
Псевдоним для qsizetype. Предоставлен для совместимости со STL.
QStringView::storage_type
Псевдоним для char16_t.
QStringView::value_type
Псевдоним для const QChar. Предоставлен для совместимости со STL.
Документация по функциям членов
[since 6.0] template <typename Needle, typename Flags> decltype(qTokenize(*this, std::forward<Needle>(needle), flags...)) QStringView::tokenize(Needle &&sep, Flags... flags) const
Разбивает строку на фрагменты-представления подстрок там, где встречается sep, и возвращает ленивую последовательность этих строк.
Эквивалентно
return QStringTokenizer{std::forward<Needle>(sep), flags...}; кроме того, что работает без включенного в компилятор C++17 Class Template Argument Deduction (CTAD).
См. QStringTokenizer для того, как sep и flags взаимодействуют, чтобы сформировать результат.
Примечание: Хотя эта функция возвращает QStringTokenizer, вы никогда не должны явно указывать её шаблоны аргументов. Если вы можете использовать C++17 Class Template Argument Deduction (CTAD), вы можете написать
QStringTokenizer result = sv.tokenize(sep);
(без шаблонов аргументов). Если вы не можете использовать C++17 CTAD, вы должны хранить возвращаемое значение только в auto переменных:
auto result = sv.tokenize(sep);
Это связано с тем, что шаблоны аргументов QStringTokenizer имеют очень тонкое зависимость от конкретного перегрузки tokenize() из которого они возвращены, и они обычно не соответствуют типу, используемому для разделителя.
Эта функция была добавлена в Qt 6.0.
См. также QStringTokenizer и qTokenize().
[since 6.2] qsizetype QStringView::lastIndexOf(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[since 6.2] qsizetype QStringView::lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последнего вхождения строкового представления str или латинской строки l1 соответственно в этой строке, выполняя поиск в обратном направлении от последнего символа этой строки. Возвращает -1, если str не найдено.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае поиск выполняется без учета регистра.
Эта функция была добавлена в Qt 6.2.
См. также QString::lastIndexOf().
[since 5.14] qsizetype QStringView::lastIndexOf(QChar c, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[since 5.14] qsizetype QStringView::lastIndexOf(QLatin1String l1, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[since 5.14] qsizetype QStringView::lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает индекс последнего вхождения строкового представления str, латинской строки l1 или символа ch соответственно в этой строке, выполняя поиск в обратном направлении с индекса from. Если from равно -1, поиск начинается с последнего символа; если from равно -2, с предпоследнего и так далее. Возвращает -1, если str не найдено.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае поиск выполняется без учета регистра.
Примечание: При поиске 0-символьного str или l1 совпадение в конце данных исключается при отрицательном from, хотя -1 обычно рассматривается как поиск с конца строкового представления: совпадение в конце идёт после последнего символа, поэтому оно исключается. Чтобы включить такое конечное пустое совпадение, либо задайте положительное значение from, либо полностью опустите параметр from.
Эта функция была добавлена в Qt 5.14.
См. также QString::lastIndexOf().
[since 5.14] bool QStringView::contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[since 5.14] bool QStringView::contains(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[since 5.14] bool QStringView::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает true, если эта строковая область содержит вхождение строковой области str, строки Latin-1 l1 или символа ch; в противном случае возвращает false.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае поиск выполняется без учета регистра.
Эта функция была введена в Qt 5.14.
См. также indexOf().
[since 5.14] qsizetype QStringView::indexOf(QChar c, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[since 5.14] qsizetype QStringView::indexOf(QLatin1String l1, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[since 5.14] qsizetype QStringView::indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает индекс позиции первого вхождения строковой области str, строки Latin-1 l1 или символа ch соответственно в этой строковой области, выполняя поиск вперед с позиции from. Возвращает -1, если str не найдена.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае поиск выполняется без учета регистра.
Если from равно -1, поиск начинается с последнего символа; если -2, со следующего за последним и так далее.
Эта функция была введена в Qt 5.14.
См. также QString::indexOf().
bool QStringView::endsWith(QChar ch) const
bool QStringView::endsWith(QChar ch, Qt::CaseSensitivity cs) const
bool QStringView::endsWith(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool QStringView::endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает true, если эта строковая область заканчивается строковой областью str, строкой Latin-1 l1 или символом ch соответственно; в противном случае возвращает false.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае поиск выполняется без учета регистра.
См. также startsWith().
bool QStringView::startsWith(QChar ch) const
bool QStringView::startsWith(QChar ch, Qt::CaseSensitivity cs) const
bool QStringView::startsWith(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool QStringView::startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает true, если эта строковая область начинается со строковой области str, строки Latin-1 l1 или символа ch соответственно; в противном случае возвращает false.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае поиск выполняется без учета регистра.
См. также endsWith().
[since 5.15] int QStringView::compare(QChar ch) const
[since 5.15] int QStringView::compare(QChar ch, Qt::CaseSensitivity cs) const
[since 5.15] int QStringView::compare(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает целое число, которое сравнивает с нулем, так как эта строковая область сравнивается со строкой Latin-1 l1 или символом ch соответственно.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), сравнение выполняется с учетом регистра; в противном случае сравнение выполняется без учета регистра.
Эта функция была введена в Qt 5.15.
См. также operator==(), operator<() и operator>().
[since 5.14] template <typename Args> QString QStringView::arg(Args &&... args) const
Заменяет вхождения %N в этой строке соответствующим аргументом из args. Аргументы не позиционные: первый из args заменяет %N с наименьшим N (все из них), второй из args заменяет %N с последующим наименьшим N и т. д.
Args может содержать всё, что неявно преобразуется в QString, QStringView или QLatin1String.
Кроме того, также поддерживаются следующие типы: QChar, QLatin1Char.
Эта функция была введена в Qt 5.14.
См. также QString::arg().
[since 6.0] QList<QStringView> QStringView::split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[since 6.0] QList<QStringView> QStringView::split(QStringView sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Разделяет строку на подстроковые представления там, где появляется sep, и возвращает список этих строковых представлений.
См. QString::split(), чтобы узнать, как sep, behavior и cs взаимодействуют, формируя результат.
Примечание: Все представления остаются валидными, пока эта строка существует. Уничтожение этой строки приведёт к тому, что все представления станут указателями на неиспользуемую память.
Эта функция была введена в Qt 6.0.
template <typename Container, if_compatible_container<Container>> QStringView::QStringView(const Container &str)
Создаёт строковое представление на str. Длина берётся из str.size().
str.data() должна оставаться валидной на протяжении всего срока существования объекта этого строкового представления.
Этот конструктор участвует в разрешении перегрузки только в том случае, если StdBasicString является экземпляром std::basic_string с совместимым типом символа. Совместимые типы символов: QChar, ushort, char16_t и (на платформах, таких как Windows, где это 16-битный тип) wchar_t.
Строковое представление будет пустым тогда и только тогда, когда str.empty(). Не определено, может ли этот конструктор привести к нулевому строковому представлению (str.data() должно было бы вернуть nullptr для этого).
См. также isNull() и isEmpty().
QStringView::QStringView(const QString &str)
Создаёт представление строки str.
str.data() должно оставаться корректным в течение всего времени существования объекта представления строки.
Представление строки будет null тогда и только тогда, когда str.isNull().
template <typename Char> QStringView::QStringView(const Char *str)
Создаёт представление строки str. Длина определяется сканированием до первой Char(0).
str должен оставаться корректным в течение всего времени существования объекта представления строки.
Передача nullptr в качестве str безопасна и приводит к представлению пустой строки.
Этот конструктор участвует в разрешении перегрузки только если str не является массивом и если Char является совместимым типом символа. Совместимые типы символов: QChar, ushort, char16_t и (на платформах, таких как Windows, где это 16-битный тип) wchar_t.
template <typename Char, size_t N> QStringView::QStringView(const Char (&)[N] string = N)
Создаёт представление строки-литерала string. Представление охватывает массив до первой Char(0) или N, что наступит раньше. Если вам нужен весь массив, используйте fromArray() вместо этого.
string должен оставаться корректным в течение всего времени существования объекта представления строки.
Этот конструктор участвует в разрешении перегрузки только если string является фактическим массивом и Char является совместимым типом символа. Совместимые типы символов: QChar, ushort, char16_t и (на платформах, таких как Windows, где это 16-битный тип) wchar_t.
См. также fromArray.
template <typename Char, if_compatible_char<Char>> QStringView::QStringView(const Char *first, const Char *last)
Создаёт представление строки first длиной (last - first).
Диапазон [first,last) должен оставаться корректным в течение всего времени существования объекта представления строки.
Передача \nullptr в качестве first безопасна, если last также равен nullptr, и приводит к представлению пустой строки.
Поведение не определено, если last предшествует first или first равно nullptr и last не равен ему.
Этот конструктор участвует в разрешении перегрузки только если Char является совместимым типом символа. Совместимые типы символов: QChar, ushort, char16_t и (на платформах, таких как Windows, где это 16-битный тип) wchar_t.
template <typename Char, if_compatible_char<Char>> QStringView::QStringView(const Char *str, qsizetype len)
Создаёт представление строки str длиной len.
Передача [str,len) в качестве str безопасна, если len равно 0, и приводит к представлению пустой строки.
Поведение не определено, если len отрицательно или, при положительном значении, если str равен nullptr.
Этот конструктор участвует в разрешении перегрузки только если Char является совместимым типом символа. Совместимые типы символов: QChar, ushort, char16_t и (на платформах, таких как Windows, где это 16-битный тип) wchar_t.
QStringView::QStringView(std::nullptr_t)
Создаёт представление пустой строки.
См. также isNull().
QStringView::QStringView()
Создаёт представление пустой строки.
См. также isNull().
QChar QStringView::at(qsizetype n) const
Возвращает символ в позиции n в этом представлении строки.
Поведение не определено, если n отрицательно или не меньше size().
См. также operator[](), front() и back().
QChar QStringView::back() const
Возвращает последний символ строки. То же самое, что last().
Эта функция предоставляется для совместимости со стандартной библиотекой шаблонов (STL).
Предупреждение: Вызов этой функции для пустого представления строки ведёт к неопределённому поведению.
См. также front(), first() и last().
QStringView::const_iterator QStringView::begin() const
Возвращает итератор, указывающий на первый символ в строке.
Эта функция предоставляется для совместимости со стандартной библиотекой шаблонов (STL).
См. также end(), constBegin(), cbegin(), rbegin() и data().
QStringView::const_iterator QStringView::cbegin() const
То же самое, что begin().
Эта функция предоставляется для совместимости со стандартной библиотекой шаблонов (STL).
См. также cend(), begin(), constBegin(), crbegin() и data().
QStringView::const_iterator QStringView::cend() const
То же самое, что end().
Эта функция предоставляется для совместимости со стандартной библиотекой шаблонов (STL).
См. также cbegin(), end(), constEnd() и crend().
void QStringView::chop(qsizetype length)
Усекает это представление строки на length символов.
То же самое, что *this = left(size() - length).
Примечание: Поведение не определено, когда length < 0 или length > size().
См. также mid(), left(), right(), chopped() и truncate().
QStringView QStringView::chopped(qsizetype length) const
Возвращает подстроку длиной size() - length, начинающуюся с начала этого объекта.
То же самое, что left(size() - length).
Примечание: Поведение не определено, когда length < 0 или length > size().
См. также mid(), left(), right(), chop() и truncate().
[since 5.12] int QStringView::compare(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает целое число, которое сравнивается с нулём, как это представление строки сравнивается со строкой str.
Если cs равен Qt::CaseSensitive (по умолчанию), сравнение учитывает регистр; в противном случае сравнение не учитывает регистр.
Эта функция была введена в Qt 5.12.
См. также operator==(), operator<() и operator>().
[since 6.1] QStringView::const_iterator QStringView::constBegin() const
То же самое, что begin().
Эта функция была введена в Qt 6.1.
См. также constEnd(), begin(), cbegin(), crbegin() и data().
[since 6.0] QStringView::const_pointer QStringView::constData() const
Возвращает указатель на первый символ в строке.
Примечание: Массив символов, представленный возвращаемым значением, не завершается нулём.
Эта функция была введена в Qt 6.0.
См. также data(), begin(), end() и utf16().
[since 6.1] QStringView::const_iterator QStringView::constEnd() const
То же самое, что end().
Эта функция была введена в Qt 6.1.
См. также constBegin(), end(), cend() и crend().
END_OF_DOCUMENT_MARKER
[since 6.1] bool QStringView::contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const
Возвращает true если регулярное выражение re совпадает где-либо в этой строке-представлении; в противном случае возвращает false.
Если совпадение выполнено успешно, и rmatch не nullptr, то также записывает результаты совпадения в объект QRegularExpressionMatch, на который указывает rmatch.
Эта функция была добавлена в Qt 6.1.
См. также QRegularExpression::match().
[since 6.1] qsizetype QStringView::count(const QRegularExpression &re) const
Возвращает количество совпадений регулярного выражения re в представлении строки.
По историческим причинам эта функция считает перекрывающиеся совпадения. Это поведение отличается от простого перебора совпадений в строке с помощью QRegularExpressionMatchIterator.
Эта функция была добавлена в Qt 6.1.
См. также QRegularExpression::globalMatch().
[since 6.0] qsizetype QStringView::count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает count().
Возвращает количество вхождений символа ch в строку-ссылку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае поиск выполняется без учета регистра.
Эта функция была добавлена в Qt 6.0.
См. также QString::count(), contains() и indexOf().
[since 6.0] qsizetype QStringView::count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает count().
Возвращает количество (возможно, перекрывающихся) вхождений ссылки на строку str в этой строке-ссылке.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае поиск выполняется без учета регистра.
Эта функция была добавлена в Qt 6.0.
См. также QString::count(), contains() и indexOf().
QStringView::const_reverse_iterator QStringView::crbegin() const
То же самое, что и rbegin().
Эта функция предоставляется для совместимости со STL.
См. также crend(), rbegin() и cbegin().
QStringView::const_reverse_iterator QStringView::crend() const
То же самое, что и rend().
Эта функция предоставляется для совместимости со STL.
См. также crbegin(), rend() и cend().
QStringView::const_pointer QStringView::data() const
Возвращает указатель на первый символ в строке.
Примечание: Массив символов, представленный возвращаемым значением, не завершается нулём.
См. также begin(), end() и utf16().
bool QStringView::empty() const
Возвращает, пуста ли эта строка-представление — то есть, является ли size() == 0.
Эта функция предоставляется для совместимости со STL.
См. также isEmpty(), isNull(), size() и length().
QStringView::const_iterator QStringView::end() const
Возвращает указатель на мнимый символ после последнего символа в списке.
Эта функция предоставляется для совместимости со STL.
См. также begin(), constEnd(), cend() и rend().
[since 6.0] QStringView QStringView::first(qsizetype n) const
Возвращает представление строки, указывающее на первые n символов этой строки.
Примечание: Поведение не определено, когда n < 0 или n > size().
Эта функция была добавлена в Qt 6.0.
См. также last(), sliced(), startsWith(), chopped(), chop() и truncate().
QChar QStringView::first() const
Возвращает первый символ в строке. То же самое, что и front().
Эта функция предоставляется для совместимости с другими контейнерами Qt.
Предупреждение: Вызов этой функции для пустой строки-представления приводит к неопределённому поведению.
См. также front(), back() и last().
[static] template <typename Char, size_t Size, if_compatible_char<Char>> QStringView QStringView::fromArray(const Char (&)[Size] string = Size)
Создаёт представление строки на полном строковом литерале символов string, включая любые завершающие Char(0). Если вы не хотите, чтобы завершающий нуль был включён в представление, вы можете chop() его, когда уверены, что он находится в конце. В качестве альтернативы, вы можете использовать перегрузку конструктора, принимающую литерал массива, которая создаст представление до, но не включая, первый завершающий нуль в данных.
string должен оставаться валидным в течение всего жизненного цикла этого объекта представления строки.
Эта функция будет работать с любым литералом массива, если Char — совместимый тип символа. Совместимые типы символов: QChar, ushort, char16_t и (на платформах, таких как Windows, где это 16-битный тип) wchar_t.
QChar QStringView::front() const
Возвращает первый символ в строке. То же самое, что и first().
Эта функция предоставляется для совместимости со STL.
Предупреждение: Вызов этой функции для пустой строки-представления приводит к неопределённому поведению.
См. также back(), first() и last().
[since 6.1] qsizetype QStringView::indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const
Возвращает индекс первого совпадения регулярного выражения re в представлении строки, выполняя поиск вперёд с позиции from. Возвращает -1, если re не совпало нигде.
Если совпадение выполнено успешно, и rmatch не nullptr, то также записывает результаты совпадения в объект QRegularExpressionMatch, на который указывает rmatch.
Примечание: Из-за того, как работает алгоритм поиска совпадений регулярных выражений, эта функция фактически будет искать совпадения повторно с начала представления строки до достижения позиции from.
Эта функция была добавлена в Qt 6.1.
bool QStringView::isEmpty() const
Возвращает, пуста ли эта строка-представление — то есть, является ли size() == 0.
Эта функция предоставляется для совместимости с другими контейнерами Qt.
См. также empty(), isNull(), size() и length().
bool QStringView::isNull() const
Возвращает, является ли это представление строки пустым — то есть, является ли data() == nullptr.
Эта функция предоставляется для совместимости с другими контейнерами Qt.
См. также empty(), isEmpty(), size() и length().
[since 5.11] bool QStringView::isRightToLeft() const
Возвращает true если строка читается справа налево.
Эта функция была добавлена в Qt 5.11.
См. также QString::isRightToLeft().
[since 5.15] bool QStringView::isValidUtf16() const
Возвращает true если строка содержит валидные данные, закодированные в UTF-16, или false в противном случае.
Обратите внимание, что эта функция не выполняет никакой специальной валидации данных; она просто проверяет, можно ли успешно декодировать данные из UTF-16. Предполагается, что данные находятся в порядке байтов хоста; наличие BOM не имеет значения.
Эта функция была представлена в Qt 5.15.
См. также QString::isValidUtf16().
[since 6.0] QStringView QStringView::last(qsizetype n) const
Возвращает фрагмент строки, содержащий последние n символов этой строки.
Примечание: Поведение не определено, когда n < 0 или n > size().
Эта функция была представлена в Qt 6.0.
См. также first(), sliced(), endsWith(), chopped(), chop() и truncate().
QChar QStringView::last() const
Возвращает последний символ в строке. Эквивалентно back().
Эта функция предоставляется для совместимости с другими контейнерами Qt.
Предупреждение: Вызов этой функции для пустого фрагмента строки приводит к неопределённому поведению.
См. также back(), front() и first().
[since 6.2] qsizetype QStringView::lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const
Возвращает индекс последнего совпадения регулярного выражения re в фрагменте строки. Возвращает -1, если re не совпало нигде.
Если совпадение произошло и rmatch не nullptr, оно также записывает результаты совпадения в объект QRegularExpressionMatch, на который указывает rmatch.
Примечание: Из-за того, как работает алгоритм сопоставления регулярных выражений, эта функция фактически будет производить совпадение многократно, начиная с начала фрагмента строки и до конца фрагмента строки.
Эта функция была представлена в Qt 6.2.
[since 6.1] qsizetype QStringView::lastIndexOf(const QRegularExpression &re, qsizetype from, QRegularExpressionMatch *rmatch = nullptr) const
Возвращает индекс последнего совпадения регулярного выражения re во фрагменте строки, начинающегося перед индексом from. Если from равно -1, поиск начинается с последнего символа; если from равно -2, с предпоследнего символа и так далее. Возвращает -1, если re не совпало нигде.
Если совпадение произошло и rmatch не nullptr, оно также записывает результаты совпадения в объект QRegularExpressionMatch, на который указывает rmatch.
Примечание: Из-за того, как работает алгоритм сопоставления регулярных выражений, эта функция фактически будет производить совпадение многократно, начиная с начала фрагмента строки и до позиции from.
Примечание: При поиске регулярного выражения re, которое может совпадать с 0 символами, совпадение в конце данных исключается из поиска с помощью отрицательного from, хотя -1 обычно рассматривается как поиск с конца фрагмента строки: совпадение в конце находится *после* последнего символа, поэтому оно исключается. Для включения такого конечного пустого совпадения, либо укажите положительное значение для from, либо опустите параметр from полностью.
Эта функция была представлена в Qt 6.1.
qsizetype QStringView::length() const
Эквивалентно size().
Эта функция предоставляется для совместимости с другими контейнерами Qt.
См. также empty(), isEmpty(), isNull() и size().
QStringView::const_reverse_iterator QStringView::rbegin() const
Возвращает постоянный итератор обратного прохода STL, указывающий на первый символ в строке в обратном порядке.
Эта функция предоставляется для совместимости со STL.
См. также rend(), crbegin() и begin().
QStringView::const_reverse_iterator QStringView::rend() const
Возвращает итератор обратного прохода STL, указывающий на позицию за последним символом в строке в обратном порядке.
Эта функция предоставляется для совместимости со STL.
См. также rbegin(), crend() и end().
qsizetype QStringView::size() const
Возвращает размер этого фрагмента строки в кодовых точках UTF-16 (то есть пары суррогатов считаются за две для целей этой функции, как и в QString).
См. также empty(), isEmpty(), isNull() и length().
[since 6.0] QStringView QStringView::sliced(qsizetype pos, qsizetype n) const
Возвращает фрагмент строки, содержащий n символов этой строки, начиная с позиции pos.
Примечание: Поведение не определено, когда pos < 0, n < 0 или pos + n > size().
Эта функция была представлена в Qt 6.0.
См. также first(), last(), chopped(), chop() и truncate().
[since 6.0] QStringView QStringView::sliced(qsizetype pos) const
Это перегруженная функция.
Возвращает фрагмент строки, начинающийся с позиции pos в этом объекте и продолжающийся до его конца.
Примечание: Поведение не определено, когда pos < 0 или pos > size().
Эта функция была представлена в Qt 6.0.
См. также first(), last(), chopped(), chop() и truncate().
[since 6.0] QList<QStringView> QStringView::split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const
Разделяет строку на фрагменты подстрок там, где регулярное выражение re совпадает, и возвращает список этих строк. Если re не совпадает нигде в строке, split() возвращает список с одним элементом, содержащим эту строку как фрагмент.
Примечание: Фрагменты в возвращаемом списке являются подфрагментами этого фрагмента; следовательно, они ссылаются на те же данные, что и он, и остаются допустимыми только до тех пор, пока эти данные остаются активными.
Эта функция была представлена в Qt 6.0.
[since 6.0] CFStringRef QStringView::toCFString() const
Создаёт CFString из этого QStringView.
Вызывающий владеет CFString и отвечает за его освобождение.
Примечание: Эта функция доступна только на macOS и iOS.
Эта функция была представлена в Qt 6.0.
[since 6.0] double QStringView::toDouble(bool *ok = nullptr) const
Возвращает строку, преобразованную в значение с плавающей точкой.
Возвращает бесконечность, если преобразование переполняет, или 0.0, если преобразование не удалось по другим причинам (например, при подпотоке).
Если ok не nullptr, неудача сообщается путём установки *ok в false, а успех — путём установки *ok в true.
Преобразование строки всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toDouble().
По историческим причинам, эта функция не обрабатывает разделители тысяч. Если вам нужно преобразовать такие числа, используйте QLocale::toDouble().
Эта функция была представлена в Qt 6.0.
См. также QString::toDouble().
[since 6.0] float QStringView::toFloat(bool *ok = nullptr) const
Возвращает строку, преобразованную в значение с плавающей точкой.
Возвращает бесконечность, если преобразование переполняет, или 0.0, если преобразование не удалось по другим причинам (например, при подпотоке).
Если ok не nullptr, неудача сообщается путём установки *ok в false, а успех — путём установки *ok в true.
Преобразование строки всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toFloat().
Эта функция была представлена в Qt 6.0.
См. также QString::toFloat().
[since 6.0] int QStringView::toInt(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в int с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.
Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toInt()
Функция была добавлена в Qt 6.0.
См. также QString::toInt().
QByteArray QStringView::toLatin1() const
Возвращает латинско-1 представление строки в виде QByteArray.
Поведение не определено, если строка содержит нелатинско-1 символы.
См. также toUtf8(), toLocal8Bit(), и QStringEncoder.
QByteArray QStringView::toLocal8Bit() const
Возвращает локальное 8-битное представление строки в виде QByteArray.
В системах Unix это эквивалентно toUtf8(), в Windows используется текущая кодовая страница системы.
Поведение не определено, если строка содержит символы, не поддерживаемые 8-битной кодировкой локали.
См. также toLatin1(), toUtf8(), и QStringEncoder.
long QStringView::toLong(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.
Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toLong()
Функция была добавлена в Qt 6.0.
См. также QString::toLong().
qlonglong QStringView::toLongLong(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в long long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.
Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toLongLong()
Функция была добавлена в Qt 6.0.
См. также QString::toLongLong().
NSString *QStringView::toNSString() const
Создаёт NSString из этого QStringView.
NSString возвращается с автоматическим освобождением.
Примечание: эта функция доступна только на macOS и iOS.
Функция была добавлена в Qt 6.0.
short QStringView::toShort(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в short с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.
Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toShort()
Функция была добавлена в Qt 6.0.
См. также QString::toShort().
QString QStringView::toString() const
Возвращает глубокую копию данных этого представления строки в виде QString.
Возвращаемое значение будет пустым QString только в том случае, если это представление строки является пустым.
Предупреждение: QStringView может хранить строки более чем с 230 символами, в то время как QString не может. Вызов этой функции для представления строки, для которого size() возвращает значение больше, чем INT_MAX / 2, является неопределённым поведением.
uint QStringView::toUInt(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в unsigned int с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.
Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toUInt()
Функция была добавлена в Qt 6.0.
См. также QString::toUInt().
ulong QStringView::toULong(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в unsigned long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.
Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toULongLong()
Функция была добавлена в Qt 6.0.
См. также QString::toULong().
qulonglong QStringView::toULongLong(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в unsigned long long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.
Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toULongLong()
Функция была добавлена в Qt 6.0.
См. также QString::toULongLong().
ushort QStringView::toUShort(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в unsigned short с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.
Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toUShort()
Функция была добавлена в Qt 6.0.
См. также QString::toUShort().
QList<uint> QStringView::toUcs4() const
Возвращает UCS-4/UTF-32 представление строки в виде QList<uint>.
UCS-4 — это кодек Unicode, поэтому преобразование без потерь. Все символы из этой строки будут закодированы в UCS-4. Любая неверная последовательность кодовых единиц в этой строке заменяется замещающим символом Unicode (QChar::ReplacementCharacter, который соответствует U+FFFD).
Возвращаемый список не завершается нулём.
См. также toUtf8(), toLatin1(), toLocal8Bit(), и QStringEncoder.
QByteArray QStringView::toUtf8() const
Возвращает UTF-8 представление строки в виде QByteArray.
UTF-8 — это кодек Unicode и может представлять все символы в строке Unicode, например, в QString.
См. также toLatin1(), toLocal8Bit() и QStringEncoder.
[since 5.14] qsizetype QStringView::toWCharArray(wchar_t *array) const
Преобразует эту строку в заданный массив array.
Вызывающий объект отвечает за обеспечение того, что array достаточно велик, чтобы вместить wchar_t кодирование этой строки (выделение массива той же длины, что и у строки, всегда достаточно). Массив кодируется в UTF-16 на платформах, где wchar_t занимает 2 байта (например, Windows); в противном случае (системы Unix) wchar_t предполагается, что занимает 4 байта, и данные записываются в UCS-4.
Примечание: Эта функция не записывает нулевой терминатор в конец array.
Возвращает количество wchar_t элементов, записанных в array.
Данная функция была добавлена в Qt 5.14.
См. также QString::toWCharArray().
QStringView QStringView::trimmed() const
Удаляет начальные и конечные пробелы и возвращает результат.
Пробелы — это любые символы, для которых QChar::isSpace() возвращает true. Это включает ASCII-символы '\t', '\n', '\v', '\f', '\r' и ' '.
void QStringView::truncate(qsizetype length)
Усекает эту строку до длины length.
То же самое, что и *this = left(length).
Примечание: Поведение не определено, когда length < 0 или length > size().
См. также mid(), left(), right(), chopped() и chop().
const QStringView::storage_type *QStringView::utf16() const
Возвращает указатель на первый символ в строке.
storage_type — char16_t.
Примечание: Массив символов, представленный возвращаемым значением, не завершается нулём.
См. также begin(), end() и data().
QChar QStringView::operator[](qsizetype n) const
Возвращает символ в позиции n в этой строке.
Поведение не определено, если n отрицательное или не меньше size().
См. также at(), front() и back().
Связанные нечлен-функции
bool operator!=(QStringView lhs, QStringView rhs)
bool operator<(QStringView lhs, QStringView rhs)
bool operator<=(QStringView lhs, QStringView rhs)
bool operator==(QStringView lhs, QStringView rhs)
bool operator>(QStringView lhs, QStringView rhs)
bool operator>=(QStringView lhs, QStringView rhs)
Операторы для сравнения lhs с rhs.
См. также compare().
[since 5.10] size_t qHash(QStringView key, size_t seed = 0)
Возвращает значение хэша для key, используя seed для инициализации вычисления.
Данная функция была добавлена в Qt 5.10.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qstringview.html