Spec-Zone.ru › Qt

Класс 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
  • Список всех членов, включая унаследованные

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

Типы публичного доступа

difference_type
size_type

Функции публичного доступа

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 length() const
qsizetype size() const
qsizetype size_bytes() const
QString toString() const

Статические члены публичного доступа

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

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

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() должен оставаться действительным на протяжении всего срока существования этого объекта string view.

Объект string view будет равен null тогда и только тогда, когда str.isNull().

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

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

str должен оставаться действительным на протяжении всего срока существования этого объекта string view.

Передача 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 view.

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

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

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

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

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

Передача \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) должен оставаться действительным на протяжении всего срока существования этого объекта string view.

Передача 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.

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

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

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

Возвращает значение true, если string view пуст, то есть size() == 0.

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

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

QChar QAnyStringView::front() const

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

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

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

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

bool QAnyStringView::isEmpty() const

Возвращает значение true, если string view пуст, то есть size() == 0.

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

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

bool QAnyStringView::isNull() const

Возвращает значение true, если string view равен null, то есть data() == nullptr.

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

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

qsizetype QAnyStringView::length() const

То же, что и size().

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

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

qsizetype QAnyStringView::size() const

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

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

qsizetype QAnyStringView::size_bytes() const

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

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

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

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

QString QAnyStringView::toString() const

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

Возвращаемое значение будет null QString тогда и только тогда, когда этот string view равен 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.2/qanystringview.html

Spec-Zone.ru

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