Spec-Zone.ru › Qt 6.0

Класс 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 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() должно оставаться валидным в течение всего жизненного цикла этого объекта представления строки.

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

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

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

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

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

Этот конструктор участвует в разрешении перегрузки только если 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, и приводит к представлению пустой строки.

Поведение неопределено, если 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, и приводит к представлению пустой строки.

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

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

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

QAnyStringView::QAnyStringView(std::nullptr_t)

Создаёт представление пустой строки.

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

QAnyStringView::QAnyStringView()

Создаёт представление пустой строки.

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

QChar QAnyStringView::back() const

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

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

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

См. также 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

Возвращает, является ли это представление строки пустым — то есть, если 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 тогда и только тогда, когда это представление строки пустое.

Связанные нечленные функции

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.0/qanystringview.html

Spec-Zone.ru

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