- Qt 6.6
- Qt Core
- C++ Classes
- QLatin1StringView
- Qt 6.6.1 Reference Documentation

# QLatin1StringView Class

The QLatin1StringView class provides a thin wrapper around a US-ASCII/Latin-1 encoded string literal. More...

Header: | #include <QLatin1StringView>
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: | QT += core

- List of all members, including inherited members
- QLatin1StringView is part of Classes for String Data.

Note: All functions in this class are reentrant.

## Public Types

| const_iterator
| const_reference
| const_reverse_iterator
| difference_type
| iterator
| reference
| reverse_iterator
| size_type
| value_type

## Public Functions

| QLatin1StringView()
| QLatin1StringView(std::nullptr_t)
| QLatin1StringView(const char *str)
| QLatin1StringView(const char *first, const char *last)
| QLatin1StringView(const char *str, qsizetype size)
| QLatin1StringView(const QByteArray &str)
| QLatin1StringView(QByteArrayView str)
QString | arg(Args &&... args) const
QLatin1Char | at(qsizetype pos) const
QLatin1Char | back() const
QLatin1StringView::const_iterator | begin() const
QLatin1StringView::const_iterator | cbegin() const
QLatin1StringView::const_iterator | cend() const
void | chop(qsizetype length)
QLatin1StringView | chopped(qsizetype length) const
int | compare(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int | compare(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int | compare(QUtf8StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int | compare(QChar ch) const
int | compare(QChar ch, Qt::CaseSensitivity cs) const
const char * | constBegin() const
const char * | constData() const
const char * | constEnd() const
bool | contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool | contains(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool | contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype | count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype | count(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype | count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QLatin1StringView::const_reverse_iterator | crbegin() const
QLatin1StringView::const_reverse_iterator | crend() const
const char * | data() const
bool | empty() const
QLatin1StringView::const_iterator | end() const
bool | endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool | endsWith(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool | endsWith(QChar ch) const
bool | endsWith(QChar ch, Qt::CaseSensitivity cs) const
QLatin1Char | first() const
QLatin1StringView | first(qsizetype n) const
QLatin1Char | front() const
qsizetype | indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype | indexOf(QLatin1StringView l1, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype | indexOf(QChar c, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool | isEmpty() const
bool | isNull() const
QLatin1Char | last() const
QLatin1StringView | last(qsizetype n) const
qsizetype | lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype | lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype | lastIndexOf(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype | lastIndexOf(QLatin1StringView l1, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype | lastIndexOf(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype | lastIndexOf(QChar c, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
const char * | latin1() const
QLatin1StringView | left(qsizetype length) const
qsizetype | length() const
QLatin1StringView | mid(qsizetype start, qsizetype length = -1) const
QLatin1StringView::const_reverse_iterator | rbegin() const
QLatin1StringView::const_reverse_iterator | rend() const
QLatin1StringView | right(qsizetype length) const
qsizetype | size() const
QLatin1StringView | sliced(qsizetype pos) const
QLatin1StringView | sliced(qsizetype pos, qsizetype n) const
bool | startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool | startsWith(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool | startsWith(QChar ch) const
bool | startsWith(QChar ch, Qt::CaseSensitivity cs) const
double | toDouble(bool *ok = nullptr) const
float | toFloat(bool *ok = nullptr) const
int | toInt(bool *ok = nullptr, int base = 10) const
long | toLong(bool *ok = nullptr, int base = 10) const
qlonglong | toLongLong(bool *ok = nullptr, int base = 10) 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
decltype(qTokenize(*this, std::forward<Needle>(needle), flags...)) | tokenize(Needle &&sep, Flags... flags) const
QLatin1StringView | trimmed() const
void | truncate(qsizetype length)
bool | operator!=(const char *other) const
bool | operator!=(const QByteArray &other) const
bool | operator<(const char *other) const
bool | operator<(const QByteArray &other) const
bool | operator<=(const char *other) const
bool | operator<=(const QByteArray &other) const
bool | operator==(const char *other) const
bool | operator==(const QByteArray &other) const
bool | operator>(const char *other) const
bool | operator>(const QByteArray &other) const
bool | operator>=(const char *other) const
bool | operator>=(const QByteArray &other) const
QLatin1Char | operator[](qsizetype pos) const

## Related Non-Members

bool | operator!=(QLatin1StringView s1, QLatin1StringView s2)
bool | operator!=(QChar ch, QLatin1StringView s)
bool | operator!=(QLatin1StringView s, QChar ch)
bool | operator!=(QStringView s1, QLatin1StringView s2)
bool | operator!=(QLatin1StringView s1, QStringView s2)
bool | operator!=(const char *s1, QLatin1StringView s2)
QLatin1StringView | operator""_L1(const char *str, size_t size)
bool | operator<(QLatin1StringView s1, QLatin1StringView s2)
bool | operator<(QChar ch, QLatin1StringView s)
bool | operator<(QLatin1StringView s, QChar ch)
bool | operator<(QStringView s1, QLatin1StringView s2)
bool | operator<(QLatin1StringView s1, QStringView s2)
bool | operator<(const char *s1, QLatin1StringView s2)
bool | operator<=(QLatin1StringView s1, QLatin1StringView s2)
bool | operator<=(QChar ch, QLatin1StringView s)
bool | operator<=(QLatin1StringView s, QChar ch)
bool | operator<=(QStringView s1, QLatin1StringView s2)
bool | operator<=(QLatin1StringView s1, QStringView s2)
bool | operator<=(const char *s1, QLatin1StringView s2)
bool | operator==(QLatin1StringView s1, QLatin1StringView s2)
bool | operator==(QChar ch, QLatin1StringView s)
bool | operator==(QLatin1StringView s, QChar ch)
bool | operator==(QStringView s1, QLatin1StringView s2)
bool | operator==(QLatin1StringView s1, QStringView s2)
bool | operator==(const char *s1, QLatin1StringView s2)
bool | operator>(QLatin1StringView s1, QLatin1StringView s2)
bool | operator>(QChar ch, QLatin1StringView s)
bool | operator>(QLatin1StringView s, QChar ch)
bool | operator>(QStringView s1, QLatin1StringView s2)
bool | operator>(QLatin1StringView s1, QStringView s2)
bool | operator>(const char *s1, QLatin1StringView s2)
bool | operator>=(QLatin1StringView s1, QLatin1StringView s2)
bool | operator>=(QChar ch, QLatin1StringView s)
bool | operator>=(QLatin1StringView s, QChar ch)
bool | operator>=(QStringView s1, QLatin1StringView s2)
bool | operator>=(QLatin1StringView s1, QStringView s2)
bool | operator>=(const char *s1, QLatin1StringView s2)

## Detailed Description

Many of QString's member functions are overloaded to accept `const char *` instead of QString. This includes the copy constructor, the assignment operator, the comparison operators, and various other functions such as insert(), append(), and prepend(). Some of these functions are optimized to avoid constructing a QString object for the `const char *` data. For example, assuming `str` is a QString,

     if (str == "auto" || str == "extern"
             || str == "static" || str == "register") {
         ...
     }

is much faster than

     if (str == QString("auto") || str == QString("extern")
             || str == QString("static") || str == QString("register")) {
         ...
     }

because it doesn't construct four temporary QString objects and make a deep copy of the character data.

However, that is not true for all QString member functions that take `const char *` and therefore applications should assume a temporary will be created, such as in

     str.append("Hello ").append("World");

Applications that define QT_NO_CAST_FROM_ASCII (as explained in the QString documentation) don't have access to QString's `const char *` API. To provide an efficient way of specifying constant Latin-1 strings, Qt provides the QLatin1StringView, which is just a very thin wrapper around a `const char *`. Using QLatin1StringView, the example code above becomes

     if (str == "auto"_L1
             || str == "extern"_L1
             || str == "static"_L1
             || str == "register"_L1 {
         ...
     }

This is a bit longer to type, but it provides exactly the same benefits as the first version of the code, and is faster than converting the Latin-1 strings using QString::fromLatin1().

Thanks to the QString(QLatin1StringView) constructor, QLatin1StringView can be used everywhere a QString is expected. For example:

     QLabel *label = new QLabel("MOD"_L1, this);

Note: If the function you're calling with a QLatin1StringView argument isn't actually overloaded to take QLatin1StringView, the implicit conversion to QString will trigger a memory allocation, which is usually what you want to avoid by using QLatin1StringView in the first place. In those cases, using QStringLiteral may be the better option.

See also QString, QLatin1Char, QStringLiteral, and QT_NO_CAST_FROM_ASCII.

## Member Type Documentation

### `[alias]` QLatin1StringView::const_iterator

See also iterator and const_reverse_iterator.

### `[alias]` QLatin1StringView::const_reference

Alias for `reference`. Provided for compatibility with the STL.

### `[alias]` QLatin1StringView::const_reverse_iterator

See also reverse_iterator and const_iterator.

### `[alias]` QLatin1StringView::difference_type

Alias for `qsizetype`. Provided for compatibility with the STL.

### `[alias]` QLatin1StringView::iterator

QLatin1StringView does not support mutable iterators, so this is the same as const_iterator.

See also const_iterator and reverse_iterator.

### `[alias]` QLatin1StringView::reference

Alias for `value_type &`. Provided for compatibility with the STL.

### `[alias]` QLatin1StringView::reverse_iterator

QLatin1StringView does not support mutable reverse iterators, so this is the same as const_reverse_iterator.

See also const_reverse_iterator and iterator.

### `[alias]` QLatin1StringView::size_type

Alias for `qsizetype`. Provided for compatibility with the STL.

Note: In version prior to Qt 6, this was an alias for `int`, restricting the amount of data that could be held in a QLatin1StringView on 64-bit architectures.

### `[alias]` QLatin1StringView::value_type

Alias for `const char`. Provided for compatibility with the STL.

## Member Function Documentation

### `[constexpr noexcept]` int QLatin1StringView::compare(QChar ch) const

### `[noexcept]` int QLatin1StringView::compare(QChar ch, Qt::CaseSensitivity cs) const

### `[noexcept]` int QLatin1StringView::compare(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

### `[noexcept]` int QLatin1StringView::compare(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Returns an integer that compares to zero as this string view compares to the UTF-16 string viewed by str, the Latin-1 string viewed by l1, or the character ch, respectively.

If cs is Qt::CaseSensitive (the default), the search is case-sensitive; otherwise the search is case-insensitive.

See also operator==(), operator<(), and operator>().

### `[constexpr noexcept]` bool QLatin1StringView::startsWith(QChar ch) const

### `[noexcept]` bool QLatin1StringView::startsWith(QChar ch, Qt::CaseSensitivity cs) const

### `[noexcept]` bool QLatin1StringView::startsWith(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

### `[noexcept]` bool QLatin1StringView::startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Returns `true` if this Latin-1 string view starts with the UTF-16 string viewed by str, the Latin-1 string viewed by l1, or the character ch, respectively; otherwise returns `false`.

If cs is Qt::CaseSensitive (the default), the search is case-sensitive; otherwise the search is case-insensitive.

See also endsWith().

### `[constexpr noexcept]` bool QLatin1StringView::endsWith(QChar ch) const

### `[noexcept]` bool QLatin1StringView::endsWith(QChar ch, Qt::CaseSensitivity cs) const

### `[noexcept]` bool QLatin1StringView::endsWith(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

### `[noexcept]` bool QLatin1StringView::endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Returns `true` if this Latin-1 string view ends with the UTF-16 string viewed str, the Latin-1 string viewed by l1, or the character ch, respectively; otherwise returns `false`.

If cs is Qt::CaseSensitive (the default), the search is case-sensitive; otherwise the search is case-insensitive.

See also startsWith().

### `[noexcept]` qsizetype QLatin1StringView::indexOf(QChar c, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

### `[noexcept]` qsizetype QLatin1StringView::indexOf(QLatin1StringView l1, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

### `[noexcept]` qsizetype QLatin1StringView::indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Returns the index position in this Latin-1 string view of the first occurrence of the UTF-16 string viewed by str, the Latin-1 string viewed by l1, or the character ch, respectively, searching forward from index position from. Returns -1 if str, l1 or c is not found, respectively.

If cs is Qt::CaseSensitive (the default), the search is case-sensitive; otherwise the search is case-insensitive.

If from is -1, the search starts at the last character; if it is -2, at the next to last character and so on.

See also QString::indexOf().

### `[noexcept]` bool QLatin1StringView::contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

### `[noexcept]` bool QLatin1StringView::contains(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

### `[noexcept]` bool QLatin1StringView::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Returns `true` if this Latin-1 string view contains an occurrence of the UTF-16 string viewed by str, the Latin-1 string viewed by l1, or the character ch, respectively; otherwise returns `false`.

If cs is Qt::CaseSensitive (the default), the search is case-sensitive; otherwise the search is case-insensitive.

See also indexOf(), QStringView::contains(), QStringView::indexOf(), and QString::indexOf().

### `[noexcept]` qsizetype QLatin1StringView::lastIndexOf(QChar c, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

### `[noexcept]` qsizetype QLatin1StringView::lastIndexOf(QLatin1StringView l1, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

### `[noexcept]` qsizetype QLatin1StringView::lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Returns the index position in this Latin-1 string view of the last occurrence of the UTF-16 string viewed by str, the Latin-1 string viewed by l1, or the character ch, respectively, searching backward from index position from; returns -1 if str, l1 or ch is not found, respectively.

If from is -1, the search starts at the last character; if it is -2, at the next to last character and so on.

If cs is Qt::CaseSensitive (the default), the search is case-sensitive; otherwise the search is case-insensitive.

Note: When searching for a 0-length str or l1, the match at the end of the data is excluded from the search by a negative from, even though `-1` is normally thought of as searching from the end of the string: the match at the end is after the last character, so it is excluded. To include such a final empty match, either give a positive value for from or omit the from parameter entirely.

See also indexOf(), QStringView::lastIndexOf(), QStringView::indexOf(), and QString::indexOf().

### `[noexcept, since 6.2]` qsizetype QLatin1StringView::lastIndexOf(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

### `[noexcept, since 6.2]` qsizetype QLatin1StringView::lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

This function overloads lastIndexOf().

Returns the index position in this Latin-1 string view of the last occurrence of the UTF-16 string viewed by str or the Latin-1 string viewed by l1, respectively. Returns -1 if str or l1 is not found, respectively.

If cs is Qt::CaseSensitive (the default), the search is case-sensitive; otherwise the search is case-insensitive.

This function was introduced in Qt 6.2.

### `[noexcept, since 6.4]` qsizetype QLatin1StringView::count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

### `[since 6.4]` qsizetype QLatin1StringView::count(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

### `[since 6.4]` qsizetype QLatin1StringView::count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Returns the number of (potentially overlapping) occurrences of the UTF-16 string viewed by str, the Latin-1 string viewed by l1, or the character ch, respectively, in this string view.

If cs is Qt::CaseSensitive (the default), the search is case-sensitive; otherwise the search is case-insensitive.

This function was introduced in Qt 6.4.

See also contains() and indexOf().

### `[since 6.4]` int QLatin1StringView::toInt(bool *ok = nullptr, int base = 10) const

### `[since 6.4]` long QLatin1StringView::toLong(bool *ok = nullptr, int base = 10) const

### `[since 6.4]` qlonglong QLatin1StringView::toLongLong(bool *ok = nullptr, int base = 10) const

### `[since 6.4]` qulonglong QLatin1StringView::toULongLong(bool *ok = nullptr, int base = 10) const

### `[since 6.4]` short QLatin1StringView::toShort(bool *ok = nullptr, int base = 10) const

### `[since 6.4]` uint QLatin1StringView::toUInt(bool *ok = nullptr, int base = 10) const

### `[since 6.4]` ulong QLatin1StringView::toULong(bool *ok = nullptr, int base = 10) const

### `[since 6.4]` ushort QLatin1StringView::toUShort(bool *ok = nullptr, int base = 10) const

Returns this QLatin1StringView converted to a corresponding numeric value using base base, which is ten by default. Bases 0 and 2 through 36 are supported, using letters for digits beyond 9; A is ten, B is eleven and so on.

If base is 0, the base is determined automatically using the following rules (in this order), if the Latin-1 string view begins with:

- `"0x"`, the rest of it is read as hexadecimal (base 16)
- `"0b"`, the rest of it is read as binary (base 2)
- `"0"`, the rest of it is read as octal (base 8)
- otherwise it is read as decimal

Returns 0 if the conversion fails.

If ok is not `nullptr`, failure is reported by setting *ok to `false`, and success by setting *ok to `true`.

Note: The conversion of the number is performed in the default C locale, regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.

This function ignores leading and trailing spacing characters.

Note: Support for the "0b" prefix was added in Qt 6.4.

This function was introduced in Qt 6.4.

### `[since 6.4]` double QLatin1StringView::toDouble(bool *ok = nullptr) const

### `[since 6.4]` float QLatin1StringView::toFloat(bool *ok = nullptr) const

Returns this QLatin1StringView converted to a corresponding floating-point value.

Returns an infinity if the conversion overflows or 0.0 if the conversion fails for other reasons (e.g. underflow).

If ok is not `nullptr`, failure is reported by setting *ok to `false`, and success by setting *ok to `true`.

Warning: The QLatin1StringView content may only contain valid numerical characters which includes the plus/minus sign, the character e used in scientific notation, and the decimal point. Including the unit or additional characters leads to a conversion error.

Note: The conversion of the number is performed in the default C locale, regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.

This function ignores leading and trailing spacing characters.

This function was introduced in Qt 6.4.

### template <typename Args> QString QLatin1StringView::arg(Args &&... args) const

Replaces occurrences of `%N` in this string with the corresponding argument from args. The arguments are not positional: the first of the args replaces the `%N` with the lowest `N` (all of them), the second of the args the `%N` with the next-lowest `N` etc.

`Args` can consist of anything that implicitly converts to QString, QStringView or QLatin1StringView.

In addition, the following types are also supported: QChar, QLatin1Char.

See also QString::arg().

### `[constexpr noexcept(...), since 6.0]` template <typename Needle, typename Flags> decltype(qTokenize(*this, std::forward<Needle>(needle), flags...)) QLatin1StringView::tokenize(Needle &&sep, Flags... flags) const

Splits the string into substring views wherever sep occurs, and returns a lazy sequence of those strings.

Equivalent to

     return QStringTokenizer{std::forward<Needle>(sep), flags...};

except it works without C++17 Class Template Argument Deduction (CTAD) enabled in the compiler.

See QStringTokenizer for how sep and flags interact to form the result.

Note: While this function returns QStringTokenizer, you should never, ever, name its template arguments explicitly. If you can use C++17 Class Template Argument Deduction (CTAD), you may write

     QStringTokenizer result = sv.tokenize(sep);

(without template arguments). If you can't use C++17 CTAD, you must store the return value only in `auto` variables:

     auto result = sv.tokenize(sep);

This is because the template arguments of QStringTokenizer have a very subtle dependency on the specific tokenize() overload from which they are returned, and they don't usually correspond to the type used for the separator.

This function was introduced in Qt 6.0.

Note: This function does not throw any exception when "noexcept(qTokenize(std::declval<const QLatin1StringView &>(), std::forward<Needle>(needle), flags...))" is true.

See also QStringTokenizer and qTokenize().

### `[constexpr noexcept]` QLatin1StringView::QLatin1StringView()

Constructs a QLatin1StringView object that stores a `nullptr`.

See also data(), isEmpty(), isNull(), and Distinction Between Null and Empty Strings.

### `[constexpr noexcept, since 6.4]` QLatin1StringView::QLatin1StringView(std::nullptr_t)

Constructs a QLatin1StringView object that stores a `nullptr`.

This function was introduced in Qt 6.4.

See also data(), isEmpty(), isNull(), and Distinction Between Null and Empty Strings.

### `[explicit constexpr noexcept]` QLatin1StringView::QLatin1StringView(const char *str)

Constructs a QLatin1StringView object that stores str.

The string data is not copied. The caller must be able to guarantee that str will not be deleted or modified as long as the QLatin1StringView object exists.

See also latin1().

### `[constexpr]` QLatin1StringView::QLatin1StringView(const char *first, const char *last)

Constructs a QLatin1StringView object that stores first with length (last - first).

The range `[first,last)` must remain valid for the lifetime of this Latin-1 string object.

Passing `nullptr` as first is safe if last is `nullptr`, too, and results in a null Latin-1 string.

The behavior is undefined if last precedes first, first is `nullptr` and last is not, or if `last - first > INT_MAX`.

### `[constexpr noexcept]` QLatin1StringView::QLatin1StringView(const char *str, qsizetype size)

Constructs a QLatin1StringView object that stores str with size.

The string data is not copied. The caller must be able to guarantee that str will not be deleted or modified as long as the QLatin1StringView object exists.

Note: : any null ('\0') bytes in the byte array will be included in this string, which will be converted to Unicode null characters (U+0000) if this string is used by QString. This behavior is different from Qt 5.x.

See also latin1().

### `[explicit noexcept]` QLatin1StringView::QLatin1StringView(const QByteArray &str)

Constructs a QLatin1StringView object as a view on str.

The string data is not copied. The caller must be able to guarantee that str will not be deleted or modified as long as the QLatin1StringView object exists.

See also latin1().

### `[explicit constexpr noexcept, since 6.3]` QLatin1StringView::QLatin1StringView(QByteArrayView str)

Constructs a QLatin1StringView object as a view on str.

The string data is not copied. The caller must be able to guarantee that the data which str is pointing to will not be deleted or modified as long as the QLatin1StringView object exists. The size is obtained from str as-is, without checking for a null-terminator.

Note: : any null ('\0') bytes in the byte array will be included in this string, which will be converted to Unicode null characters (U+0000) if this string is used by QString.

This function was introduced in Qt 6.3.

See also latin1().

### `[constexpr]` QLatin1Char QLatin1StringView::at(qsizetype pos) const

Returns the character at position pos in this object.

Note: This function performs no error checking. The behavior is undefined when pos < 0 or pos >= size().

See also operator[]().

### `[constexpr]` QLatin1Char QLatin1StringView::back() const

Returns the last character in the string. Same as `at(size() - 1)`.

This function is provided for STL compatibility.

Warning: Calling this function on an empty string constitutes undefined behavior.

See also front(), at(), and operator[]().

### `[constexpr noexcept]` QLatin1StringView::const_iterator QLatin1StringView::begin() const

Returns a const STL-style iterator pointing to the first character in the string.

This function is provided for STL compatibility.

See also end(), cbegin(), rbegin(), and data().

### `[constexpr noexcept]` QLatin1StringView::const_iterator QLatin1StringView::cbegin() const

Same as begin().

This function is provided for STL compatibility.

See also cend(), begin(), crbegin(), and data().

### `[constexpr noexcept]` QLatin1StringView::const_iterator QLatin1StringView::cend() const

Same as end().

This function is provided for STL compatibility.

See also cbegin(), end(), and crend().

### `[constexpr]` void QLatin1StringView::chop(qsizetype length)

Truncates this string by length characters.

Same as `*this = left(size() - length)`.

Note: The behavior is undefined when length < 0 or length > size().

See also sliced(), first(), last(), chopped(), and truncate().

### `[constexpr]` QLatin1StringView QLatin1StringView::chopped(qsizetype length) const

Returns the substring of length size() - length starting at the beginning of this object.

Same as `left(size() - length)`.

Note: The behavior is undefined when length < 0 or length > size().

See also sliced(), first(), last(), chop(), and truncate().

### `[noexcept, since 6.5]` int QLatin1StringView::compare(QUtf8StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Returns an integer that compares to zero as this string view compares to the string view str.

If cs is Qt::CaseSensitive (the default), the comparison is case-sensitive; otherwise the comparison is case-insensitive.

This function was introduced in Qt 6.5.

See also operator==(), operator<(), and operator>().

### `[constexpr noexcept, since 6.4]` const char *QLatin1StringView::constBegin() const

Same as begin().

This function is provided for compatibility with other Qt containers.

This function was introduced in Qt 6.4.

See also constEnd(), begin(), cbegin(), and data().

### `[constexpr noexcept, since 6.4]` const char *QLatin1StringView::constData() const

Returns the start of the Latin-1 string referenced by this object.

This function is provided for compatibility with other Qt containers.

This function was introduced in Qt 6.4.

See also data().

### `[constexpr noexcept, since 6.4]` const char *QLatin1StringView::constEnd() const

Same as end().

This function is provided for compatibility with other Qt containers.

This function was introduced in Qt 6.4.

See also constBegin(), end(), cend(), and crend().

### `[noexcept]` QLatin1StringView::const_reverse_iterator QLatin1StringView::crbegin() const

Same as rbegin().

This function is provided for STL compatibility.

See also crend(), rbegin(), and cbegin().

### `[noexcept]` QLatin1StringView::const_reverse_iterator QLatin1StringView::crend() const

Same as rend().

This function is provided for STL compatibility.

See also crbegin(), rend(), and cend().

### `[constexpr noexcept]` const char *QLatin1StringView::data() const

Returns the start of the Latin-1 string referenced by this object.

### `[constexpr noexcept, since 6.4]` bool QLatin1StringView::empty() const

Returns whether the Latin-1 string referenced by this object is empty (`size() == 0`) or not.

This function is provided for STL compatibility.

This function was introduced in Qt 6.4.

See also isEmpty(), isNull(), and size().

### `[constexpr noexcept]` QLatin1StringView::const_iterator QLatin1StringView::end() const

Returns a const STL-style iterator pointing just after the last character in the string.

This function is provided for STL compatibility.

See also begin(), cend(), and rend().

### `[constexpr, since 6.4]` QLatin1Char QLatin1StringView::first() const

Returns the first character in the string. Same as `at(0)` or front().

This function is provided for compatibility with other Qt containers.

Warning: Calling this function on an empty string constitutes undefined behavior.

This function was introduced in Qt 6.4.

See also last(), front(), and back().

### `[constexpr, since 6.0]` QLatin1StringView QLatin1StringView::first(qsizetype n) const

Returns a Latin-1 string view that contains the first n characters of this string view.

Note: The behavior is undefined when n < 0 or n > size().

This function was introduced in Qt 6.0.

See also last(), startsWith(), chopped(), chop(), and truncate().

### `[constexpr]` QLatin1Char QLatin1StringView::front() const

Returns the first character in the string. Same as `at(0)`.

This function is provided for STL compatibility.

Warning: Calling this function on an empty string constitutes undefined behavior.

See also back(), at(), and operator[]().

### `[constexpr noexcept]` bool QLatin1StringView::isEmpty() const

Returns whether the Latin-1 string referenced by this object is empty (`size() == 0`) or not.

See also isNull() and size().

### `[constexpr noexcept]` bool QLatin1StringView::isNull() const

Returns whether the Latin-1 string referenced by this object is null (`data() == nullptr`) or not.

See also isEmpty() and data().

### `[constexpr, since 6.4]` QLatin1Char QLatin1StringView::last() const

Returns the last character in the string. Same as `at(size() - 1)` or back().

This function is provided for compatibility with other Qt containers.

Warning: Calling this function on an empty string constitutes undefined behavior.

This function was introduced in Qt 6.4.

See also first(), back(), and front().

### `[constexpr, since 6.0]` QLatin1StringView QLatin1StringView::last(qsizetype n) const

Returns a Latin-1 string view that contains the last n characters of this string view.

Note: The behavior is undefined when n < 0 or n > size().

This function was introduced in Qt 6.0.

See also first(), endsWith(), chopped(), chop(), and truncate().

### `[noexcept, since 6.3]` qsizetype QLatin1StringView::lastIndexOf(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

This is an overloaded function.

This function was introduced in Qt 6.3.

### `[constexpr noexcept]` const char *QLatin1StringView::latin1() const

Returns the start of the Latin-1 string referenced by this object.

### `[constexpr]` QLatin1StringView QLatin1StringView::left(qsizetype length) const

If you know that length cannot be out of bounds, use first() instead in new code, because it is faster.

Returns the substring of length length starting at position 0 in this Latin-1 string view.

The entire Latin-1 string view is returned if length is greater than or equal to size(), or less than zero.

See also first(), last(), sliced(), startsWith(), chopped(), chop(), and truncate().

### `[constexpr noexcept, since 6.4]` qsizetype QLatin1StringView::length() const

Same as size().

This function is provided for compatibility with other Qt containers.

This function was introduced in Qt 6.4.

### `[constexpr]` QLatin1StringView QLatin1StringView::mid(qsizetype start, qsizetype length = -1) const

Returns the substring of length length starting at position start in this Latin-1 string view.

If you know that start and length cannot be out of bounds, use sliced() instead in new code, because it is faster.

Returns an empty Latin-1 string view if start exceeds the length of this string view. If there are less than length characters available in this string view starting at start, or if length is negative (default), the function returns all characters that are available from start.

See also first(), last(), sliced(), chopped(), chop(), and truncate().

### `[noexcept]` QLatin1StringView::const_reverse_iterator QLatin1StringView::rbegin() const

Returns a const STL-style reverse iterator pointing to the first character in the string, in reverse order.

This function is provided for STL compatibility.

See also rend(), crbegin(), and begin().

### `[noexcept]` QLatin1StringView::const_reverse_iterator QLatin1StringView::rend() const

Returns a STL-style reverse iterator pointing just after the last character in the string, in reverse order.

This function is provided for STL compatibility.

See also rbegin(), crend(), and end().

### `[constexpr]` QLatin1StringView QLatin1StringView::right(qsizetype length) const

If you know that length cannot be out of bounds, use last() instead in new code, because it is faster.

Returns the substring of length length starting at position size() - length in this Latin-1 string view.

The entire Latin-1 string view is returned if length is greater than or equal to size(), or less than zero.

See also first(), last(), sliced(), endsWith(), chopped(), chop(), and truncate().

### `[constexpr noexcept]` qsizetype QLatin1StringView::size() const

Returns the size of the Latin-1 string referenced by this object.

Note: In version prior to Qt 6, this function returned `int`, restricting the amount of data that could be held in a QLatin1StringView on 64-bit architectures.

### `[constexpr, since 6.0]` QLatin1StringView QLatin1StringView::sliced(qsizetype pos) const

Returns a Latin-1 string view starting at position pos in this string view, and extending to its end.

Note: The behavior is undefined when pos < 0 or pos > size().

This function was introduced in Qt 6.0.

See also first(), last(), chopped(), chop(), and truncate().

### `[constexpr, since 6.0]` QLatin1StringView QLatin1StringView::sliced(qsizetype pos, qsizetype n) const

Returns a Latin-1 string view that points to n characters of this string view, starting at position pos.

Note: The behavior is undefined when pos < 0, n < 0, or `pos + n > size()`.

This function was introduced in Qt 6.0.

See also first(), last(), chopped(), chop(), and truncate().

### `[since 6.0]` QString QLatin1StringView::toString() const

Converts this Latin-1 string into a QString. Equivalent to

     return QString(*this);

This function was introduced in Qt 6.0.

### `[noexcept]` QLatin1StringView QLatin1StringView::trimmed() const

Strips leading and trailing whitespace and returns the result.

Whitespace means any character for which QChar::isSpace() returns `true`. This includes the ASCII characters '\t', '\n', '\v', '\f', '\r', and ' '.

### `[constexpr]` void QLatin1StringView::truncate(qsizetype length)

Truncates this string to length length.

Same as `*this = left(length)`.

Note: The behavior is undefined when length < 0 or length > size().

See also sliced(), first(), last(), chopped(), and chop().

### bool QLatin1StringView::operator!=(const char *other) const

Returns `true` if this string is not equal to const char pointer other; otherwise returns `false`.

The other const char pointer is converted to a QString using the QString::fromUtf8() function.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject::tr(), for example.

See also Comparing Strings.

### bool QLatin1StringView::operator!=(const QByteArray &other) const

This function overloads operator!=().

The other byte array is converted to a QString using the QString::fromUtf8() function.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject::tr(), for example.

### bool QLatin1StringView::operator<(const char *other) const

Returns `true` if this string is lexically less than const char pointer other; otherwise returns `false`.

The other const char pointer is converted to a QString using the QString::fromUtf8() function.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject::tr(), for example.

See also Comparing Strings.

### bool QLatin1StringView::operator<(const QByteArray &other) const

This is an overloaded function.

The other byte array is converted to a QString using the QString::fromUtf8() function.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject::tr(), for example.

### bool QLatin1StringView::operator<=(const char *other) const

Returns `true` if this string is lexically less than or equal to const char pointer other; otherwise returns `false`.

The other const char pointer is converted to a QString using the QString::fromUtf8() function.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject::tr(), for example.

See also Comparing Strings.

### bool QLatin1StringView::operator<=(const QByteArray &other) const

This is an overloaded function.

The other byte array is converted to a QString using the QString::fromUtf8() function.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject::tr(), for example.

### bool QLatin1StringView::operator==(const char *other) const

Returns `true` if the string is equal to const char pointer other; otherwise returns `false`.

The other const char pointer is converted to a QString using the QString::fromUtf8() function.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject::tr(), for example.

See also Comparing Strings.

### bool QLatin1StringView::operator==(const QByteArray &other) const

This is an overloaded function.

The other byte array is converted to a QString using the QString::fromUtf8() function.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject::tr(), for example.

### bool QLatin1StringView::operator>(const char *other) const

Returns `true` if this string is lexically greater than const char pointer other; otherwise returns `false`.

The other const char pointer is converted to a QString using the QString::fromUtf8() function.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject::tr(), for example.

See also Comparing Strings.

### bool QLatin1StringView::operator>(const QByteArray &other) const

This is an overloaded function.

The other byte array is converted to a QString using the QString::fromUtf8() function.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject::tr(), for example.

### bool QLatin1StringView::operator>=(const char *other) const

Returns `true` if this string is lexically greater than or equal to const char pointer other; otherwise returns `false`.

The other const char pointer is converted to a QString using the QString::fromUtf8() function.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject::tr(), for example.

See also Comparing Strings.

### bool QLatin1StringView::operator>=(const QByteArray &other) const

This is an overloaded function.

The other byte array is converted to a QString using the QString::fromUtf8() function.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject::tr(), for example.

### `[constexpr]` QLatin1Char QLatin1StringView::operator[](qsizetype pos) const

Returns the character at position pos in this object.

Note: This function performs no error checking. The behavior is undefined when pos < 0 or pos >= size().

See also at().

## Related Non-Members

### `[noexcept]` bool operator!=(QLatin1StringView s1, QLatin1StringView s2)

Returns `true` if string s1 is lexically not equal to string s2; otherwise returns `false`.

### `[noexcept]` bool operator!=(QChar ch, QLatin1StringView s)

Returns `true` if char ch is lexically not equal to string s; otherwise returns `false`.

### `[noexcept]` bool operator!=(QLatin1StringView s, QChar ch)

Returns `true` if string s is lexically not equal to char ch; otherwise returns `false`.

### `[noexcept]` bool operator!=(QStringView s1, QLatin1StringView s2)

Returns `true` if string view s1 is lexically not equal to string s2; otherwise returns `false`.

### `[noexcept]` bool operator!=(QLatin1StringView s1, QStringView s2)

Returns `true` if string s1 is lexically not equal to string view s2; otherwise returns `false`.

### bool operator!=(const char *s1, QLatin1StringView s2)

Returns `true` if const char pointer s1 is lexically not equal to string s2; otherwise returns `false`.

### `[constexpr noexcept, since 6.4]` QLatin1StringView operator""_L1(const char *str, size_t size)

Literal operator that creates a QLatin1StringView out of the first size characters in the char string literal str.

The following code creates a QLatin1StringView:

     using namespace Qt::Literals::StringLiterals;

     auto str = "hello"_L1;

This function was introduced in Qt 6.4.

See also Qt::Literals::StringLiterals.

### `[noexcept]` bool operator<(QLatin1StringView s1, QLatin1StringView s2)

Returns `true` if string s1 is lexically less than string s2; otherwise returns `false`.

### `[noexcept]` bool operator<(QChar ch, QLatin1StringView s)

Returns `true` if char ch is lexically less than string s; otherwise returns `false`.

### `[noexcept]` bool operator<(QLatin1StringView s, QChar ch)

Returns `true` if string s is lexically less than char ch; otherwise returns `false`.

### `[noexcept]` bool operator<(QStringView s1, QLatin1StringView s2)

Returns `true` if string view s1 is lexically less than string s2; otherwise returns `false`.

### `[noexcept]` bool operator<(QLatin1StringView s1, QStringView s2)

Returns `true` if string s1 is lexically less than string view s2; otherwise returns `false`.

### bool operator<(const char *s1, QLatin1StringView s2)

Returns `true` if const char pointer s1 is lexically less than string s2; otherwise returns `false`.

### `[noexcept]` bool operator<=(QLatin1StringView s1, QLatin1StringView s2)

Returns `true` if string s1 is lexically less than or equal to string s2; otherwise returns `false`.

### `[noexcept]` bool operator<=(QChar ch, QLatin1StringView s)

Returns `true` if char ch is lexically less than or equal to string s; otherwise returns `false`.

### `[noexcept]` bool operator<=(QLatin1StringView s, QChar ch)

Returns `true` if string s is lexically less than or equal to char ch; otherwise returns `false`.

### `[noexcept]` bool operator<=(QStringView s1, QLatin1StringView s2)

Returns `true` if string view s1 is lexically less than or equal to string s2; otherwise returns `false`.

### `[noexcept]` bool operator<=(QLatin1StringView s1, QStringView s2)

Returns `true` if string s1 is lexically less than or equal to string view s2; otherwise returns `false`.

### bool operator<=(const char *s1, QLatin1StringView s2)

Returns `true` if const char pointer s1 is lexically less than or equal to string s2; otherwise returns `false`.

### `[noexcept]` bool operator==(QLatin1StringView s1, QLatin1StringView s2)

Returns `true` if string s1 is lexically equal to string s2; otherwise returns `false`.

### `[noexcept]` bool operator==(QChar ch, QLatin1StringView s)

Returns `true` if char ch is lexically equal to string s; otherwise returns `false`.

### `[noexcept]` bool operator==(QLatin1StringView s, QChar ch)

Returns `true` if string s is lexically equal to char ch; otherwise returns `false`.

### `[noexcept]` bool operator==(QStringView s1, QLatin1StringView s2)

Returns `true` if string view s1 is lexically equal to string s2; otherwise returns `false`.

### `[noexcept]` bool operator==(QLatin1StringView s1, QStringView s2)

Returns `true` if string s1 is lexically equal to string view s2; otherwise returns `false`.

### bool operator==(const char *s1, QLatin1StringView s2)

Returns `true` if const char pointer s1 is lexically equal to string s2; otherwise returns `false`.

### `[noexcept]` bool operator>(QLatin1StringView s1, QLatin1StringView s2)

Returns `true` if string s1 is lexically greater than string s2; otherwise returns `false`.

### `[noexcept]` bool operator>(QChar ch, QLatin1StringView s)

Returns `true` if char ch is lexically greater than string s; otherwise returns `false`.

### `[noexcept]` bool operator>(QLatin1StringView s, QChar ch)

Returns `true` if string s is lexically greater than char ch; otherwise returns `false`.

### `[noexcept]` bool operator>(QStringView s1, QLatin1StringView s2)

Returns `true` if string view s1 is lexically greater than string s2; otherwise returns `false`.

### `[noexcept]` bool operator>(QLatin1StringView s1, QStringView s2)

Returns `true` if string s1 is lexically greater than string view s2; otherwise returns `false`.

### bool operator>(const char *s1, QLatin1StringView s2)

Returns `true` if const char pointer s1 is lexically greater than string s2; otherwise returns `false`.

### `[noexcept]` bool operator>=(QLatin1StringView s1, QLatin1StringView s2)

Returns `true` if string s1 is lexically greater than or equal to string s2; otherwise returns `false`.

### `[noexcept]` bool operator>=(QChar ch, QLatin1StringView s)

Returns `true` if char ch is lexically greater than or equal to string s; otherwise returns `false`.

### `[noexcept]` bool operator>=(QLatin1StringView s, QChar ch)

Returns `true` if string s is lexically greater than or equal to char ch; otherwise returns `false`.

### `[noexcept]` bool operator>=(QStringView s1, QLatin1StringView s2)

Returns `true` if string view s1 is lexically greater than or equal to string s2; otherwise returns `false`.

### `[noexcept]` bool operator>=(QLatin1StringView s1, QStringView s2)

Returns `true` if string s1 is lexically greater than or equal to string view s2; otherwise returns `false`.

### bool operator>=(const char *s1, QLatin1StringView s2)

Returns `true` if const char pointer s1 is lexically greater than or equal to string s2; otherwise returns `false`.