Spec-Zone.ru › Qt 6.1

Класс QAnyStringView

Класс QAnyStringView предоставляет единый вид на строки Latin-1, UTF-8 или UTF-16 с подмножеством API QString для чтения. Подробнее...

Заголовок: #include <QAnyStringView>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
С момента: Qt 6.0
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Примечание: Все функции в этом классе являются многопоточными.

Типы public

difference_type
size_type

Функции public

QAnyStringView(const QString &str)
QAnyStringView(const QByteArray &str)
QAnyStringView(const Char *str)
QAnyStringView(const Char (&)[N] string = N)
QAnyStringView(const Char *first, const Char *last)
QAnyStringView(const Char *str, qsizetype len)
QAnyStringView(std::nullptr_t)
QAnyStringView()
QChar back() const
const void * data() const
bool empty() const
QChar front() const
bool isEmpty() const
bool isNull() const
qsizetype size() const
qsizetype size_bytes() const
QString toString() const

Статические public члены

int compare(QAnyStringView lhs, QAnyStringView rhs, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Связанные non-члены

bool operator!=(QAnyStringView lhs, QAnyStringView rhs)
bool operator<(QAnyStringView lhs, QAnyStringView rhs)
bool operator<=(QAnyStringView lhs, QAnyStringView rhs)
bool operator==(QAnyStringView lhs, QAnyStringView rhs)
bool operator>(QAnyStringView lhs, QAnyStringView rhs)
bool operator>=(QAnyStringView lhs, QAnyStringView rhs)

Подробное описание

QAnyStringView ссылается на непрерывный фрагмент строки, которым она не владеет. Она действует как тип интерфейса для всех типов строк, без необходимости предварительного построения QString.

В отличие от QStringView и QUtf8StringView, QAnyStringView может содержать строки любого из следующих кодировок: UTF-8, UTF-16 и Latin-1. Последняя поддерживается для эффективной работы старого кода. Ожидается, что к Qt 7 поддержка Latin-1 будет удалена.

Строка может быть представлена в виде массива (или массивоподобной структуры данных, такой как QString, std::basic_string и т.д.) char, char8_t, QChar, ushort, char16_t или (на платформах, таких как Windows, где это 16-битный тип) wchar_t.

QAnyStringView разработан как тип интерфейса; его основное применение — как тип параметра функции. При использовании QAnyStringView в качестве автоматических переменных или членов данных следует проявлять осторожность, чтобы убедиться, что данные ссылаемой строки (например, принадлежащей QString) существуют дольше, чем объект QAnyStringView, чтобы предотвратить ситуацию, когда строковый вьюшник ссылается на удалённые данные.

При использовании в качестве типа интерфейса QAnyStringView позволяет одной функции принимать множество источников данных строк. Одна функция, принимающая QAnyStringView, таким образом, заменяет пять перегрузок функций (принимающих QString, (const QChar*, int), QUtf8StringView, QLatin1String (см. выше), и QChar), а также позволяет передавать в функцию ещё больше источников данных строк, такие как u8"Hello World", строковый литерал char8_t.

Как и в других частях Qt, QAnyStringView предполагает, что char данные закодированы в UTF-8, если они не представлены как QLatin1String.

QAnyStringView следует передавать по значению, а не по ссылке-константе:

    void myfun1(QAnyStringView sv);        // preferred
    void myfun2(const QAnyStringView &sv); // compiles and works, but slower

QAnyStringView также можно использовать в качестве возвращаемого значения функции, но это не рекомендуется. QUtf8StringView или QStringView лучше подходят в качестве возвращаемых значений функций. Если вы вызываете функцию, возвращающую QAnyStringView, следует быть внимательным, чтобы объект QAnyStringView не существовал дольше, чем функция гарантирует жизнеспособность данных ссылаемой строки. В случае сомнений следует получить сильную ссылку на данные, вызвав toString() для преобразования QAnyStringView в QString.

QAnyStringView — литеральный тип.

Совместимые типы символов

QAnyStringView принимает строки различных типов символов:

  • char (как со знаком, так и без знака)
  • char8_t (только C++20)
  • char16_t
  • wchar_t (где это 16-битный тип, например, Windows)
  • ushort
  • QChar

8-битные типы символов интерпретируются как данные UTF-8 (за исключением случаев, когда они представлены как QLatin1String), в то время как 16-битные типы символов интерпретируются как данные UTF-16 в порядке байтов хоста (так же, как и в QString).

Размеры и подстроки

Все размеры и позиции в функциях QAnyStringView указаны в кодовых точках кодировки (то есть, пары суррогатов UTF-16 считаются двумя для целей этих функций, как и в QString, и многобайтовые последовательности UTF-8 считаются двумя, тремя или четырьмя, в зависимости от их длины).

См. также QUtf8StringView и QStringView.

Документация по типам членов

QAnyStringView::difference_type

Псевдоним для std::ptrdiff_t. Предоставлен для совместимости со стандартной библиотекой шаблонов.

QAnyStringView::size_type

Псевдоним для qsizetype. Предоставлен для совместимости со стандартной библиотекой шаблонов.

Документация по функциям-членам

QAnyStringView::QAnyStringView(const QString &str)

Создаёт строковый вьюшник для str.

str.data() должен оставаться действительным в течение всего срока существования этого объекта строкового вьюшника.

Строковый вьюшник будет нулевым тогда и только тогда, когда str.isNull().

QAnyStringView::QAnyStringView(const QByteArray &str)

Создаёт строковый вьюшник для str. Данные в str интерпретируются как UTF-8.

str.data() должен оставаться действительным в течение всего срока существования этого объекта строкового вьюшника.

Просмотр строки будет равен null тогда и только тогда, когда str.isNull().

template <typename Char> QAnyStringView::QAnyStringView(const Char *str)

Создаёт просмотр строки по str. Длина определяется по первому Char(0).

str должен оставаться валидным на протяжении всего жизненного цикла объекта просмотра строки.

Передача nullptr в качестве str безопасна и приводит к просмотру строки со значением null.

Этот конструктор участвует в разрешении перегрузки только если str не является массивом и если Char — это совместимый тип символа.

См. также isNull() и Совместимые типы символов.

template <typename Char, size_t N> QAnyStringView::QAnyStringView(const Char (&)[N] string = N)

Создаёт просмотр строки по строковой литералу string. Просмотр охватывает массив до первого Char(0) или N, что произойдёт раньше. Если вам нужен весь массив, используйте fromArray().

string должен оставаться валидным на протяжении всего жизненного цикла объекта просмотра строки.

Этот конструктор участвует в разрешении перегрузки только если string является фактическим массивом и Char — это совместимый тип символа.

См. также Совместимые типы символов.

template <typename Char, if_compatible_char<Char>> QAnyStringView::QAnyStringView(const Char *first, const Char *last)

Создаёт просмотр строки по first с длиной (last - first).

Диапазон [first,last) должен оставаться валидным на протяжении всего жизненного цикла объекта просмотра строки.

Передача \nullptr в качестве first безопасна, если last также nullptr, и приводит к просмотру строки со значением null.

Поведение не определено, если last предшествует first, или first — nullptr и last — нет.

Этот конструктор участвует в разрешении перегрузки только если Char — это совместимый тип символа.

См. также isNull() и Совместимые типы символов.

template <typename Char, if_compatible_char<Char>> QAnyStringView::QAnyStringView(const Char *str, qsizetype len)

Создаёт просмотр строки по str с длиной len.

Диапазон [str,len) должен оставаться валидным на протяжении всего жизненного цикла объекта просмотра строки.

Передача nullptr в качестве str безопасна, если len равно 0, и приводит к просмотру строки со значением null.

Поведение не определено, если len отрицательно или, если положительно, если str — nullptr.

Этот конструктор участвует в разрешении перегрузки только если Char — это совместимый тип символа.

См. также isNull() и Совместимые типы символов.

QAnyStringView::QAnyStringView(std::nullptr_t)

Создаёт просмотр строки со значением null.

См. также isNull().

QAnyStringView::QAnyStringView()

Создаёт просмотр строки со значением null.

См. также isNull().

QChar QAnyStringView::back() const

Возвращает последний символ в строке.

Эта функция предоставляется для совместимости со STL.

Предупреждение: Вызов этой функции для пустой строки считается неопределённым поведением.

См. также front() и Размеры и подстроки.

[static] int QAnyStringView::compare(QAnyStringView lhs, QAnyStringView rhs, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Возвращает целое число, которое сравнивается с нулём как lhs со rhs.

Если cs — Qt::CaseSensitive (по умолчанию), сравнение чувствительно к регистру; в противном случае сравнение нечувствительно к регистру.

См. также operator==(), operator<() и operator>().

const void *QAnyStringView::data() const

Возвращает указатель на первый символ в строке.

Примечание: массив символов, представленный возвращаемым значением, не является нуль-терминированным.

См. также size_bytes().

bool QAnyStringView::empty() const

Возвращает, является ли этот просмотр строки пустым — то есть, является ли size() == 0.

Эта функция предоставляется для совместимости со STL.

См. также isEmpty(), isNull() и size().

QChar QAnyStringView::front() const

Возвращает первый символ в строке.

Эта функция предоставляется для совместимости со STL.

Предупреждение: Вызов этой функции для пустой строки считается неопределённым поведением.

См. также back() и Размеры и подстроки.

bool QAnyStringView::isEmpty() const

Возвращает, является ли этот просмотр строки пустым — то есть, является ли size() == 0.

Эта функция предоставляется для совместимости с другими контейнерами Qt.

См. также empty(), isNull() и size().

bool QAnyStringView::isNull() const

Возвращает, является ли этот просмотр строки пустым — то есть, является ли data() == nullptr.

Эта функция предоставляется для совместимости с другими контейнерами Qt.

См. также empty(), isEmpty() и size().

qsizetype QAnyStringView::size() const

Возвращает размер этого просмотра строки в кодовых точках кодировки.

См. также empty(), isEmpty(), isNull(), size_bytes() и Размеры и подстроки.

qsizetype QAnyStringView::size_bytes() const

Возвращает размер этого просмотра строки в байтах, а не кодовых точках.

Вы можете использовать эту функцию вместе с data() для хэширования или сериализации.

Эта функция предоставляется для совместимости со STL.

См. также size() и data().

QString QAnyStringView::toString() const

Возвращает глубокую копию данных этого просмотра строки в виде QString.

Возвращаемое значение будет нулевым QString, если и только если этот просмотр строки равен null.

Связанные нечлены

bool operator!=(QAnyStringView lhs, QAnyStringView rhs)

bool operator<(QAnyStringView lhs, QAnyStringView rhs)

bool operator<=(QAnyStringView lhs, QAnyStringView rhs)

bool operator==(QAnyStringView lhs, QAnyStringView rhs)

bool operator>(QAnyStringView lhs, QAnyStringView rhs)

bool operator>=(QAnyStringView lhs, QAnyStringView rhs)

Операторы, сравнивающие lhs с rhs.

См. также compare().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qanystringview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API