operator==,!=,<,<=,>,>=,<=>(std::basic_string_view)
Определено в заголовочном файле <string_view> |
||
|---|---|---|
template< class CharT, class Traits >
constexpr bool operator==( std::basic_string_view<CharT,Traits> lhs,
std::basic_string_view<CharT,Traits> rhs ) noexcept; |
(1) | (с C++17) |
template< class CharT, class Traits >
constexpr bool operator!=( std::basic_string_view<CharT,Traits> lhs,
std::basic_string_view<CharT,Traits> rhs ) noexcept; |
(2) | (с C++17) (до C++20) |
template< class CharT, class Traits >
constexpr bool operator<( std::basic_string_view<CharT,Traits> lhs,
std::basic_string_view<CharT,Traits> rhs ) noexcept; |
(3) | (с C++17) (до C++20) |
template< class CharT, class Traits >
constexpr bool operator<=( std::basic_string_view<CharT,Traits> lhs,
std::basic_string_view<CharT,Traits> rhs ) noexcept; |
(4) | (с C++17) (до C++20) |
template< class CharT, class Traits >
constexpr bool operator>( std::basic_string_view<CharT,Traits> lhs,
std::basic_string_view<CharT,Traits> rhs ) noexcept; |
(5) | (с C++17) (до C++20) |
template< class CharT, class Traits >
constexpr bool operator>=( std::basic_string_view<CharT,Traits> lhs,
std::basic_string_view<CharT,Traits> rhs ) noexcept; |
(6) | (с C++17) (до C++20) |
template< class CharT, class Traits >
constexpr /*comp-cat*/
operator<=>( std::basic_string_view<CharT,Traits> lhs,
std::basic_string_view<CharT,Traits> rhs ) noexcept; |
(7) | (с C++20) |
Сравнивает две представленные структуры.
Все сравнения выполняются с помощью функции-члена compare() (которая сама определяется с использованием Traits::compare()) :
- Две представленные структуры равны, если оба размера
lhsиrhsравны и каждый символ вlhsимеет эквивалентный символ вrhsна той же позиции. - Сравнения по порядку выполняются лексикографически — сравнение выполняется функцией, эквивалентной
std::lexicographical_compare.
|
Тип возвращаемого значения операторов трехстороннего сравнения ( Операторы |
(с C++20) |
Реализация должна предоставить достаточное количество дополнительных перегрузок constexpr и noexcept этих функций, чтобы объект basic_string_view<CharT,Traits> sv мог быть сравнен с другим объектом t с неявным преобразованием в basic_string_view<CharT,Traits>, с семантикой, идентичной сравнению sv и basic_string_view<CharT,Traits>(t).
Параметры
| lhs, rhs | - | сравниваемые представленные структуры |
Значение возврата
true если соответствующее сравнение выполняется, false в противном случае.static_cast</*comp-cat*/>(lhs.compare(rhs) <=> 0).Сложность
Линейная по размеру представленных структур.
Примечания
Достаточно дополнительных перегрузок можно реализовать с помощью контекста, исключающего вывод, в типе одного параметра.
|
Тип результата трехстороннего сравнения |
(с C++20) |
Пример
Отчеты об ошибках
Следующие отчеты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применено к | Поведение, как опубликовано | Правильное поведение |
|---|---|---|---|
| LWG 3432 | C++20 | тип возвращаемого значения operator<=> не требовался как тип категории сравнения |
требуется |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/basic_string_view/operator_cmp