En esta página

QAnyStringView Class

La clase QAnyStringView proporciona una vista unificada de cadenas Latin-1, UTF-8 o UTF-16 con un subconjunto de sólo lectura de la API QString. Más...

Cabecera: #include <QAnyStringView>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Desde: Qt 6.0

Esta clase es fuertemente comparable.

Esta clase es fuertemente comparable con char16_t, QChar, const char16_t *, const char *, QByteArray, QByteArrayView, QString, QStringView, QUtf8StringView, y QLatin1StringView.

Nota: Todas las funciones de esta clase son reentrantes.

Tipos públicos

Funciones Públicas

QAnyStringView()
QAnyStringView(const Char &ch)
QAnyStringView(const Char (&)[N] string)
QAnyStringView(const Char *str)
QAnyStringView(const Container &str)
QAnyStringView(const QByteArray &str)
QAnyStringView(const QString &str)
QAnyStringView(std::nullptr_t)
QAnyStringView(const Char *first, const Char *last)
QAnyStringView(const Char *str, qsizetype len)
(since 6.9) QString arg(Args &&... args) const
QChar back() const
(since 6.5) void chop(qsizetype n)
(since 6.5) QAnyStringView chopped(qsizetype n) const
const void *data() const
bool empty() const
(since 6.5) QAnyStringView first(qsizetype n) const
QChar front() const
bool isEmpty() const
bool isNull() const
(since 6.5) QAnyStringView last(qsizetype n) const
qsizetype length() const
(since 6.8) qsizetype max_size() const
qsizetype size() const
qsizetype size_bytes() const
(since 6.8) QAnyStringView &slice(qsizetype pos, qsizetype n)
(since 6.8) QAnyStringView &slice(qsizetype pos)
(since 6.5) QAnyStringView sliced(qsizetype pos) const
(since 6.5) QAnyStringView sliced(qsizetype pos, qsizetype n) const
QString toString() const
(since 6.5) void truncate(qsizetype n)
decltype(auto) visit(Visitor &&v) const

Miembros públicos estáticos

int compare(QAnyStringView lhs, QAnyStringView rhs, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QAnyStringView fromArray(const Char (&)[Size] string)
bool operator!=(const QAnyStringView &lhs, const QAnyStringView &rhs)
bool operator<(const QAnyStringView &lhs, const QAnyStringView &rhs)
(since 6.7) QDebug operator<<(QDebug d, QAnyStringView s)
bool operator<=(const QAnyStringView &lhs, const QAnyStringView &rhs)
bool operator==(const QAnyStringView &lhs, const QAnyStringView &rhs)
bool operator>(const QAnyStringView &lhs, const QAnyStringView &rhs)
bool operator>=(const QAnyStringView &lhs, const QAnyStringView &rhs)

Descripción Detallada

Un QAnyStringView hace referencia a una porción contigua de una cadena que no posee. Actúa como un tipo de interfaz para todo tipo de cadenas, sin necesidad de construir primero un QString.

A diferencia de QStringView y QUtf8StringView, QAnyStringView puede contener cadenas de cualquiera de las siguientes codificaciones: UTF-8, UTF-16 y Latin-1. Esta última está soportada porque Latin-1, a diferencia de UTF-8, puede compararse eficientemente con datos UTF-16: un desajuste de longitud ya significa que las cadenas no pueden ser iguales. Esto no ocurre con las comparaciones UTF-8/UTF-16, porque UTF-8 es una codificación de longitud variable.

La cadena puede representarse como una matriz (o una estructura de datos compatible con matrices, como QString, std::basic_string, etc.) de char, char8_t, QChar, ushort, char16_t o (en plataformas, como Windows, donde es un tipo de 16 bits) wchar_t.

QAnyStringView está diseñado como un tipo de interfaz; su principal caso de uso es como tipo de parámetro de función. Cuando se usan QAnyStringViews como variables automáticas o miembros de datos, hay que tener cuidado para asegurarse de que los datos de cadena referenciados (por ejemplo, propiedad de un QString) sobreviven al QAnyStringView en todas las rutas de código, no sea que la vista de cadena acabe referenciando datos borrados.

Por ejemplo,

QAnyStringView str = funcReturningQString(); // return value is a temp

dejaría str referenciando al temporal borrado (lo que constituye un comportamiento indefinido). Esto es particularmente cierto para los constructores de un solo carácter:

QAnyStringView ch = u' '; // u' ' is a temporary
// oops, ch references deleted temporary

En ambos casos, la solución es "anclar" el temporal a un lvalue y sólo entonces crear un QAnyStringView a partir de él:

const auto r = funcReturningQString();
QAnyStringView str = r; // ok, `r` outlives `str`
const auto sp = u' ';
QAnyStringView ch = sp; // ok, `sp` outlives `ch`

Sin embargo, utilizar QAnyStringView como el tipo de interfaz que se pretende que sea es siempre seguro, siempre que la documentación de la función llamada no pida un tiempo de vida mayor:

void func(QAnyStringView s);
func(u' ');
func(functionReturningQString());

Esta es la razón por la que QAnyStringView soporta estas conversiones en primer lugar.

Cuando se utiliza como un tipo de interfaz, QAnyStringView permite que una única función acepte una amplia variedad de fuentes de datos de cadenas. Una función que acepte QAnyStringView sustituye así a cinco sobrecargas de función (tomando QString, (const QChar*, qsizetype), QUtf8StringView, QLatin1StringView (pero véase más arriba), y QChar), al tiempo que permite pasar a la función incluso más fuentes de datos de cadena, como u8"Hello World", un literal de cadena char8_t.

Como en otras partes de Qt, QAnyStringView asume que los datos de char están codificados en UTF-8, a menos que se presenten como QLatin1StringView.

Desde Qt 6.4, sin embargo, los literales de cadena UTF-8 que son puro US-ASCII se almacenan automáticamente como Latin-1. Se trata de una comprobación en tiempo de compilación sin sobrecarga en tiempo de ejecución. La función requiere compilar en C++20, o con un GCC reciente.

Los QAnyStringView deben pasarse por valor, no por referencia-a-const:

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

QAnyStringView también puede utilizarse como valor de retorno de una función, pero no es recomendable. QUtf8StringView o QStringView son más adecuados como valores de retorno de funciones. Si llama a una función que devuelve QAnyStringView, tenga especial cuidado de no mantener QAnyStringView más tiempo del que la función promete para mantener vivos los datos de la cadena referenciada. En caso de duda, obtenga una referencia fuerte a los datos llamando a toString() para convertir el QAnyStringView en un QString.

QAnyStringView es un tipo literal.

Tipos de caracteres compatibles

QAnyStringView acepta cadenas sobre una variedad de tipos de caracteres:

  • char (tanto con signo como sin signo)
  • char8_t (sólo en C++20)
  • char16_t
  • wchar_t (cuando es un tipo de 16 bits, por ejemplo Windows)
  • ushort
  • QChar

Los tipos de caracteres de 8 bits se interpretan como datos UTF-8 (excepto cuando se presentan como QLatin1StringView) mientras que los tipos de caracteres de 16 bits se interpretan como datos UTF-16 en el orden de bytes del host (igual que QString).

Los siguientes tipos de caracteres sólo son compatibles con el constructor de un solo carácter:

  • QLatin1Char
  • QChar::SpecialCharacter
  • wchar_t (cuando es un tipo de 32 bits, es decir, Unix) (desde 6.10)
  • char32_t

Estos tipos de caracteres se descomponen internamente en una secuencia UTF-16 (utilizando QChar::fromUcs4() para el último).

Tamaños y subcadenas

Todos los tamaños y posiciones en las funciones QAnyStringView están en las unidades de código de la codificación (es decir, los pares de subcadenas UTF-16 cuentan como dos a efectos de estas funciones, igual que en QString, y las secuencias multibyte UTF-8 cuentan como dos, tres o cuatro, dependiendo de su longitud).

Véase también ¿Qué clase de cadena utilizar?, QUtf8StringView, y QStringView.

Documentación de tipos de miembros

QAnyStringView::difference_type

Alias para std::ptrdiff_t. Se proporciona por compatibilidad con la STL.

QAnyStringView::size_type

Alias para qsizetype. Se proporciona por compatibilidad con la STL.

Documentación de las funciones miembro

[constexpr noexcept] QAnyStringView::QAnyStringView()

Construye una vista de cadena nula.

Véase también isNull().

[constexpr noexcept] template <typename Char, QAnyStringView::if_compatible_char<Char> = true> QAnyStringView::QAnyStringView(const Char &ch)

Construye una vista de cadena en el carácter único ch. La longitud suele ser 1 (pero véase más adelante).

En general, debes asumir que un QAnyStringView así creado empezará a referenciar datos obsoletos al final de la expresión completa, cuando se borren los temporales. Esto significa que usarlo para pasar un único caracter a una función QAnyStringView está bien y es seguro (siempre que la documentación de la función no pida un tiempo de vida mayor que el de la llamada inicial):

int to_int(QAnyStringView);
int res = to_int(u'9'); // OK, data stays around for the duration of the call

Pero mantener el objeto más tiempo es un comportamiento indefinido:

QAnyStringView ch = u'9';
int res = to_int(ch); // (silent) ERROR: ch references deleted data

Si necesita esto, prefiera

const auto nine = u'9';
QAnyStringView ch(nine); // ok, references `nine`, which outlives `ch`
int res = to_int(ch); // 9

Lo anterior es válido para todos los formatos directamente compatibles con Compatible Character Types.

Si ch no es uno de estos tipos, sino que simplemente convierte a QChar, por ejemplo QChar::SpecialCharacter o QLatin1Char, el QAnyStringView se enlazará a un objeto temporal que se habrá borrado al final de la expresión completa, igual que en el segundo ejemplo.

Si ch no puede representarse en una única unidad de código UTF-16 (por ejemplo, porque se trata de un valor char32_t ), este constructor descompone ch en dos unidades de código UFT-16. El QAnyStringView resultante tendrá un size() de 2 en ese caso, y el buffer temporal en el que se almacena la descomposición se elimina al final de la expresión completa, de forma similar a

[](char32_t ch, auto &&tmp = QChar::fromUcs4(ch)) {
    return QAnyStringView(tmp);
}

La versión segura equivalente en este caso sería

const auto decomposed = QChar::fromUcs4(ch);
QAnyStringView ch(decomposed);

Véase también QChar::fromUcs4() y Compatible Character Types.

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

Construye una vista de cadena sobre la cadena de caracteres literal string. La vista cubre el array hasta que se encuentra el primer Char(0), o N, lo que ocurra primero. Si necesita el array completo, utilice fromArray() en su lugar.

string debe permanecer válida durante el tiempo de vida de este objeto vista de cadena.

Restricciones

Participa en la resolución de sobrecargas sólo si string es un array real y Char es un tipo de carácter compatible.

Véase también Compatible Character Types.

[constexpr noexcept] template <typename Char> QAnyStringView::QAnyStringView(const Char *str)

Construye una vista de cadena en str. La longitud se determina buscando la primera Char(0).

str debe permanecer válida durante el tiempo de vida de este objeto string view.

Pasar nullptr como str es seguro y da como resultado una vista de cadena nula.

Restricciones

Participa en la resolución de sobrecargas sólo si str no es una matriz y Char es un tipo de carácter compatible.

Véase también isNull() y Compatible Character Types.

[constexpr noexcept] template <typename Container, QAnyStringView::if_compatible_container<Container> = true> QAnyStringView::QAnyStringView(const Container &str)

Construye una vista de cadena en str. La longitud se toma de std::size(str).

std::data(str) debe permanecer válida durante el tiempo de vida de este objeto string view.

La vista de cadena estará vacía si y sólo si std::size(str) == 0. No se ha especificado si este constructor puede dar como resultado una vista de cadena nula (std::data(str) tendría que devolver nullptr para ello).

Restricciones

Participa en la resolución de sobrecargas sólo si Container es un contenedor con un tipo de carácter compatible como value_type.

Véase también isNull() y isEmpty().

[noexcept] QAnyStringView::QAnyStringView(const QByteArray &str)

Construye una vista de cadena en str. Los datos de str se interpretan como UTF-8.

str.data() debe permanecer válido durante el tiempo de vida de este objeto string view.

La vista de cadena será nula si y sólo si str.isNull().

[noexcept] QAnyStringView::QAnyStringView(const QString &str)

Construye una vista de cadena en str.

str.data() debe permanecer válida durante el tiempo de vida de este objeto string view.

La vista de cadena será nula si y sólo si str.isNull().

[constexpr noexcept] QAnyStringView::QAnyStringView(std::nullptr_t)

Construye una vista de cadena nula.

Véase también isNull().

[constexpr] template <typename Char, QAnyStringView::if_compatible_char<Char> = true> QAnyStringView::QAnyStringView(const Char *first, const Char *last)

Construye una vista de cadena en first con longitud (last - first).

El rango [first,last) debe permanecer válido durante el tiempo de vida de este objeto string view.

Pasar nullptr como first es seguro si last es nullptr, también, y resulta en una vista de cadena nula.

El comportamiento es indefinido si last precede a first, o first es nullptr y last no lo es.

Restricciones

Participa en la resolución de sobrecargas sólo si Char es un tipo de carácter compatible.

Véase también isNull() y Compatible Character Types.

[constexpr] template <typename Char, QAnyStringView::if_compatible_char<Char> = true> QAnyStringView::QAnyStringView(const Char *str, qsizetype len)

Construye una vista de cadena en str con la longitud len.

El rango [str,len) debe permanecer válido durante el tiempo de vida de este objeto string view.

Pasar nullptr como str es seguro si len también es 0, y da como resultado una vista de cadena nula.

El comportamiento es indefinido si len es negativo o, cuando es positivo, si str es nullptr.

Restricciones

Participa en la resolución de sobrecargas sólo si Char es un tipo de carácter compatible.

Véase también isNull() y Compatible Character Types.

[since 6.9] template <typename... Args> QString QAnyStringView::arg(Args &&... args) const

Sustituye las apariciones de %N en esta cadena por el argumento correspondiente de args. Los argumentos no son posicionales: el primero de los args sustituye al %N por el N más bajo (todos ellos), el segundo de los args al %N por el N inmediatamente inferior, etc.

Args puede consistir en cualquier cosa que implícitamente se convierta a QAnyStringView.

Esta función se introdujo en Qt 6.9.

Véase también QString::arg(Args&&...).

[constexpr] QChar QAnyStringView::back() const

Devuelve el último carácter de la vista de cadena.

Esta función se proporciona por compatibilidad con STL.

Advertencia: Llamar a esta función en una vista de cadena vacía constituye un comportamiento indefinido.

Véase también front() y Sizes and Sub-Strings.

[constexpr, since 6.5] void QAnyStringView::chop(qsizetype n)

Trunca esta vista de cadena en n puntos de código.

Igual que *this = first(size() - n).

Nota: El comportamiento es indefinido cuando n < 0 o n > size().

Esta función se introdujo en Qt 6.5.

Véase también sliced(), first(), last(), chopped(), truncate(), slice(), y Sizes and Sub-Strings.

[constexpr, since 6.5] QAnyStringView QAnyStringView::chopped(qsizetype n) const

Devuelve la subcadena de longitud size() - n que comienza al principio de este objeto.

Igual que first(size() - n).

Nota: El comportamiento es indefinido cuando n < 0 o n > size().

Esta función se introdujo en Qt 6.5.

Ver también sliced(), first(), last(), chop(), truncate(), slice(), y Sizes and Sub-Strings.

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

Compara la vista de cadena lhs con la vista de cadena rhs y devuelve un entero negativo si lhs es menor que rhs, un entero positivo si es mayor que rhs, y cero si son iguales.

Si cs es Qt::CaseSensitive (por defecto), la comparación distingue entre mayúsculas y minúsculas; en caso contrario, la comparación no distingue entre mayúsculas y minúsculas.

Véase también operator==(), operator<() y operator>().

[constexpr noexcept] const void *QAnyStringView::data() const

Devuelve un puntero constante al primer carácter de la vista de cadena.

Nota: La matriz de caracteres representada por el valor devuelto no está terminada en cero.

Véase también size_bytes().

[constexpr noexcept] bool QAnyStringView::empty() const

Devuelve si esta vista de cadena está vacía, es decir, si size() == 0.

Esta función se proporciona por compatibilidad con STL.

Véase también isEmpty(), isNull() y size().

[constexpr, since 6.5] QAnyStringView QAnyStringView::first(qsizetype n) const

Devuelve una vista de cadena que contiene los primeros puntos de código n de esta vista de cadena.

Nota: El comportamiento es indefinido cuando n < 0 o n > size().

Esta función se introdujo en Qt 6.5.

Véase también last(), sliced(), chopped(), chop(), truncate(), slice(), y Sizes and Sub-Strings.

[static constexpr noexcept] template < typename Char, size_t Size, QAnyStringView::if_compatible_char<Char> = true > QAnyStringView QAnyStringView::fromArray(const Char (&)[Size] string)

Construye una vista de cadena en la cadena de caracteres completa literal string, incluyendo cualquier final Char(0). Si no desea incluir el terminador nulo en la vista, puede eliminarlo en chop() cuando esté seguro de que se encuentra al final. Alternativamente, puede utilizar la sobrecarga del constructor tomando un literal de matriz que creará una vista hasta, pero sin incluir, el primer terminador nulo de los datos.

string debe permanecer válido durante el tiempo de vida de este objeto de vista de cadena.

Esta función funcionará con cualquier literal de matriz si Char es un tipo de carácter compatible. Los tipos de caracteres compatibles son: QChar, ushort, char16_t y (en plataformas, como Windows, donde es un tipo de 16 bits) wchar_t.

[constexpr] QChar QAnyStringView::front() const

Devuelve el primer carácter de la vista de cadena.

Esta función se proporciona por compatibilidad con STL.

Advertencia: Llamar a esta función en una vista de cadena vacía constituye un comportamiento indefinido.

Véase también back() y Sizes and Sub-Strings.

[constexpr noexcept] bool QAnyStringView::isEmpty() const

Devuelve si esta vista de cadena está vacía, es decir, si size() == 0.

Esta función se proporciona por compatibilidad con otros contenedores Qt.

Véase también empty(), isNull(), y size().

[constexpr noexcept] bool QAnyStringView::isNull() const

Devuelve si esta vista de cadena es nula - es decir, si data() == nullptr.

Esta función se proporciona por compatibilidad con otros contenedores Qt.

Véase también empty(), isEmpty(), y size().

[constexpr, since 6.5] QAnyStringView QAnyStringView::last(qsizetype n) const

Devuelve una vista de cadena que contiene los últimos puntos de código n de esta vista de cadena.

Nota: El comportamiento es indefinido cuando n < 0 o n > size().

Esta función se introdujo en Qt 6.5.

Véase también first(), sliced(), chopped(), chop(), truncate(), slice(), y Sizes and Sub-Strings.

[constexpr noexcept] qsizetype QAnyStringView::length() const

Igual que size().

Esta función se proporciona por compatibilidad con otros contenedores Qt.

Véase también size().

[constexpr noexcept, since 6.8] qsizetype QAnyStringView::max_size() const

Esta función se proporciona por compatibilidad con STL.

Devuelve el número máximo de elementos que la vista de cadena puede representar teóricamente. En la práctica, el número puede ser mucho menor, limitado por la cantidad de memoria disponible en el sistema.

Nota: El valor devuelto se calcula basándose en el tipo de carácter utilizado actualmente, por lo que llamar a esta función en dos vistas diferentes puede devolver resultados diferentes.

Esta función se introdujo en Qt 6.8.

[constexpr noexcept] qsizetype QAnyStringView::size() const

Devuelve el tamaño de esta vista de cadena, en los puntos de código de la codificación.

Véase también empty(), isEmpty(), isNull(), size_bytes(), y Sizes and Sub-Strings.

[constexpr noexcept] qsizetype QAnyStringView::size_bytes() const

Devuelve el tamaño de esta vista de cadena, pero en bytes, no en puntos de código.

Puede utilizar esta función junto con data() para hash o serialización.

Esta función se proporciona por compatibilidad con STL.

Véase también size() y data().

[constexpr, since 6.8] QAnyStringView &QAnyStringView::slice(qsizetype pos, qsizetype n)

Modifica esta vista de cadena para que comience en la posición pos, extendiéndose para los puntos de código n.

Nota: El comportamiento es indefinido cuando pos < 0, n < 0, o pos + n > size().

Esta función se introdujo en Qt 6.8.

Véase también sliced(), first(), last(), chopped(), chop(), truncate(), y Sizes and Sub-Strings.

[constexpr, since 6.8] QAnyStringView &QAnyStringView::slice(qsizetype pos)

Modifica esta vista de cadena para que comience en la posición pos, extendiéndose hasta su final.

Nota: El comportamiento es indefinido cuando pos < 0 o pos > size().

Esta es una función sobrecargada.

Esta función se introdujo en Qt 6.8.

Ver también sliced(), first(), last(), chopped(), chop(), truncate(), y Sizes and Sub-Strings.

[constexpr, since 6.5] QAnyStringView QAnyStringView::sliced(qsizetype pos) const

Devuelve una vista de cadena que comienza en la posición pos en este objeto, y se extiende hasta su final.

Nota: El comportamiento es indefinido cuando pos < 0 o pos > size().

Esta función se introdujo en Qt 6.5.

Ver también first(), last(), chopped(), chop(), truncate(), slice(), y Sizes and Sub-Strings.

[constexpr, since 6.5] QAnyStringView QAnyStringView::sliced(qsizetype pos, qsizetype n) const

Devuelve una vista de cadena que contiene n puntos de código de esta vista de cadena, comenzando en la posición pos.

Nota: El comportamiento es indefinido cuando pos < 0, n < 0, o pos + n > size().

Esta función se introdujo en Qt 6.5.

Véase también first(), last(), chopped(), chop(), truncate(), slice(), y Sizes and Sub-Strings.

QString QAnyStringView::toString() const

Devuelve una copia profunda de los datos de esta vista de cadena como QString.

El valor devuelto será un null QString si y sólo si esta vista de cadena es null.

[constexpr, since 6.5] void QAnyStringView::truncate(qsizetype n)

Trunca esta vista de cadena a n puntos de código.

Igual que *this = first(n).

Nota: El comportamiento es indefinido cuando n < 0 o n > size().

Esta función se introdujo en Qt 6.5.

Véase también sliced(), first(), last(), chopped(), chop(), y Sizes and Sub-Strings.

[constexpr] template <typename Visitor> decltype(auto) QAnyStringView::visit(Visitor &&v) const

Llama a v con un QUtf8StringView, QLatin1String, o QStringView, dependiendo de la codificación de los datos de cadena a los que hace referencia esta vista de cadena.

Así es como la mayoría de las funciones que toman QAnyStringView se bifurcan en funciones por codificación:

void processImpl(QLatin1String s) { ~~~ }
void processImpl(QUtf8StringView s) { ~~~ }
void processImpl(QStringView s) { ~~~ }

void process(QAnyStringView s)
{
    s.visit([](auto s) { processImpl(s); });
}

Aquí, estamos reutilizando el mismo nombre, s, tanto para el objeto QAnyStringView, como para el parámetro de la lambda. Esto es código idiomático y ayuda a rastrear la identidad de los objetos a través de llamadas a visit(), por ejemplo en situaciones más complejas como

bool equal(QAnyStringView lhs, QAnyStringView rhs)
{
    // assuming operator==(QAnyStringView, QAnyStringView) didn't, yet, exist:
    return lhs.visit([rhs](auto lhs) {
        rhs.visit([lhs](auto rhs) {
            return lhs == rhs;
        });
    });
}

visit() requiere que todas las instancias de lambda tengan el mismo tipo de retorno. Si difieren, se obtiene un error de compilación, incluso si hay un tipo común. Para solucionarlo, puedes utilizar tipos de retorno explícitos en la lambda, o hacer cast en las sentencias return:

// wrong:
QAnyStringView firstHalf(QAnyStringView input)
{
    return input.visit([](auto input) {   // ERROR: lambdas return different types
        return input.sliced(0, input.size() / 2);
    });
}
// correct:
QAnyStringView firstHalf(QAnyStringView input)
{
    return input.visit([](auto input) -> QAnyStringView { // OK, explicit return type
        return input.sliced(0, input.size() / 2);
    });
}
// also correct:
QAnyStringView firstHalf(QAnyStringView input)
{
    return input.visit([](auto input) {
        return QAnyStringView(input.sliced(0, input.size() / 2)); // OK, cast to common type
    });
}

No miembros relacionados

[since 6.7] QDebug operator<<(QDebug d, QAnyStringView s)

Envía s al flujo de depuración d.

Si d.quotedString() es true, indica en qué codificación está la cadena. Si sólo quieres los datos de la cadena, usa visit() de esta forma:

s.visit([&d) (auto s) { d << s; });

Esta función se introdujo en Qt 6.7.

Véase también QAnyStringView::visit().

[noexcept] bool operator==(const QAnyStringView &lhs, const QAnyStringView &rhs)

[noexcept] bool operator!=(const QAnyStringView &lhs, const QAnyStringView &rhs)

[noexcept] bool operator<=(const QAnyStringView &lhs, const QAnyStringView &rhs)

[noexcept] bool operator>=(const QAnyStringView &lhs, const QAnyStringView &rhs)

[noexcept] bool operator<(const QAnyStringView &lhs, const QAnyStringView &rhs)

[noexcept] bool operator>(const QAnyStringView &lhs, const QAnyStringView &rhs)

Operadores que comparan lhs con rhs.

Véase también compare().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.