Namespaces
Variants

operator==,!=,<,<=,>,>=,<=> (std::sub_match)

From cppreference.net
Regular expressions library
Classes
(C++11)
Algorithms
Iterators
Exceptions
Traits
Constants
(C++11)
Regex Grammar
std::sub_match
Member functions
Non-member functions
operator== operator!= operator<< operator<= operator> operator>= operator<=>
(until C++20) (until C++20) (until C++20) (until C++20) (until C++20) (C++20)
Определено в заголовке <regex>
Прямое сравнение
template < class BidirIt >

bool operator == ( const std:: sub_match < BidirIt > & lhs,

const std:: sub_match < BidirIt > & rhs ) ;
(1) (начиная с C++11)
template < class BidirIt >

bool operator ! = ( const std:: sub_match < BidirIt > & lhs,

const std:: sub_match < BidirIt > & rhs ) ;
(2) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator < ( const std:: sub_match < BidirIt > & lhs,

const std:: sub_match < BidirIt > & rhs ) ;
(3) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator <= ( const std:: sub_match < BidirIt > & lhs,

const std:: sub_match < BidirIt > & rhs ) ;
(4) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator > ( const std:: sub_match < BidirIt > & lhs,

const std:: sub_match < BidirIt > & rhs ) ;
(5) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator >= ( const std:: sub_match < BidirIt > & lhs,

const std:: sub_match < BidirIt > & rhs ) ;
(6) (начиная с C++11)
(до C++20)
template < class BidirIt >

auto operator <=> ( const std:: sub_match < BidirIt > & lhs,

const std:: sub_match < BidirIt > & rhs ) ;
(7) (начиная с C++20)
Сравнение с std::basic_string
template < class BidirIt, class Traits, class Alloc >

bool operator == ( const std:: sub_match < BidirIt > & lhs,
const std:: basic_string < /*тип-значения-для*/ < BidirIt > ,

Traits, Alloc > & str ) ;
(8) (начиная с C++11)
template < class BidirIt, class Traits, class Alloc >

bool operator ! = ( const std:: sub_match < BidirIt > & lhs,
const std:: basic_string < /*value-type-of*/ < BidirIt > ,

Traits, Alloc > & str ) ;
(9) (начиная с C++11)
(до C++20)
template < class BidirIt, class Traits, class Alloc >

bool operator < ( const std:: sub_match < BidirIt > & lhs,
const std:: basic_string < /*value-type-of*/ < BidirIt > ,

Traits, Alloc > & str ) ;
(10) (начиная с C++11)
(до C++20)
template < class BidirIt, class Traits, class Alloc >

bool operator <= ( const std:: sub_match < BidirIt > & lhs,
const std:: basic_string < /*value-type-of*/ < BidirIt > ,

Traits, Alloc > & str ) ;
(11) (начиная с C++11)
(до C++20)
template < class BidirIt, class Traits, class Alloc >

bool operator > ( const std:: sub_match < BidirIt > & lhs,
const std:: basic_string < /*value-type-of*/ < BidirIt > ,

Traits, Alloc > & str ) ;
(12) (начиная с C++11)
(до C++20)
template < class BidirIt, class Traits, class Alloc >

bool operator >= ( const std:: sub_match < BidirIt > & lhs,
const std:: basic_string < /*value-type-of*/ < BidirIt > ,

Traits, Alloc > & str ) ;
(13) (начиная с C++11)
(до C++20)
template < class BidirIt, class Traits, class Alloc >

auto operator <=> ( const std:: sub_match < BidirIt > & lhs,
const std:: basic_string < /*тип-значения-для*/ < BidirIt > ,

Traits, Alloc > & str ) ;
(14) (начиная с C++20)
template < class BidirIt, class Traits, class Alloc >

bool operator == ( const std:: basic_string < /*тип-значения-из*/ < BidirIt > ,
Traits, Alloc > & str,

const std:: sub_match < BidirIt > & rhs ) ;
(15) (начиная с C++11)
(до C++20)
template < class BidirIt, class Traits, class Alloc >

bool operator ! = ( const std:: basic_string < /*тип-значения-из*/ < BidirIt > ,
Traits, Alloc > & str,

const std:: sub_match < BidirIt > & rhs ) ;
(16) (начиная с C++11)
(до C++20)
template < class BidirIt, class Traits, class Alloc >

bool operator < ( const std:: basic_string < /*тип-значения-для*/ < BidirIt > ,
Traits, Alloc > & str,

const std:: sub_match < BidirIt > & rhs ) ;
(17) (начиная с C++11)
(до C++20)
template < class BidirIt, class Traits, class Alloc >

bool operator <= ( const std:: basic_string < /*тип-значения-из*/ < BidirIt > ,
Traits, Alloc > & str,

const std:: sub_match < BidirIt > & rhs ) ;
(18) (начиная с C++11)
(до C++20)
template < class BidirIt, class Traits, class Alloc >

bool operator > ( const std:: basic_string < /*тип-значения-из*/ < BidirIt > ,
Traits, Alloc > & str,

const std:: sub_match < BidirIt > & rhs ) ;
(19) (начиная с C++11)
(до C++20)
template < class BidirIt, class Traits, class Alloc >

bool operator >= ( const std:: basic_string < /*тип-значения-для*/ < BidirIt > ,
Traits, Alloc > & str,

const std:: sub_match < BidirIt > & rhs ) ;
(20) (начиная с C++11)
(до C++20)
Сравнение со строкой в стиле C
template < class BidirIt >

bool operator == ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения-для*/ < BidirIt > * s ) ;
(21) (начиная с C++11)
template < class BidirIt >

bool operator ! = ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения-для*/ < BidirIt > * s ) ;
(22) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator < ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения-для*/ < BidirIt > * s ) ;
(23) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator <= ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения-для*/ < BidirIt > * s ) ;
(24) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator > ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения*/ < BidirIt > * s ) ;
(25) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator >= ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения-для*/ < BidirIt > * s ) ;
(26) (начиная с C++11)
(до C++20)
template < class BidirIt >

auto operator <=> ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения-для*/ < BidirIt > * s ) ;
(27) (начиная с C++20)
template < class BidirIt >

bool operator == ( const /*value-type-of*/ < BidirIt > * s,

const std:: sub_match < BidirIt > & rhs ) ;
(28) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator ! = ( const /*тип-значения-для*/ < BidirIt > * s,

const std:: sub_match < BidirIt > & rhs ) ;
(29) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator < ( const /*тип-значения-для*/ < BidirIt > * s,

const std:: sub_match < BidirIt > & rhs ) ;
(30) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator <= ( const /*тип-значения-для*/ < BidirIt > * s,

const std:: sub_match < BidirIt > & rhs ) ;
(31) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator > ( const /*value-type-of*/ < BidirIt > * s,

const std:: sub_match < BidirIt > & rhs ) ;
(32) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator >= ( const /*тип-значения-для*/ < BidirIt > * s,

const std:: sub_match < BidirIt > & rhs ) ;
(33) (начиная с C++11)
(до C++20)
Сравнение с одним символом
template < class BidirIt >

bool operator == ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения-для*/ < BidirIt > & ch ) ;
(34) (начиная с C++11)
template < class BidirIt >

bool operator ! = ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения-для*/ < BidirIt > & ch ) ;
(35) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator < ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения-для*/ < BidirIt > & ch ) ;
(36) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator <= ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения-для*/ < BidirIt > & ch ) ;
(37) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator > ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения-для*/ < BidirIt > & ch ) ;
(38) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator >= ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения-для*/ < BidirIt > & ch ) ;
(39) (начиная с C++11)
(до C++20)
template < class BidirIt >

auto operator <=> ( const std:: sub_match < BidirIt > & lhs,

const /*тип-значения-для*/ < BidirIt > & ch ) ;
(40) (начиная с C++20)
template < class BidirIt >

bool operator == ( const /*тип-значения-для*/ < BidirIt > & ch,

const std:: sub_match < BidirIt > & rhs ) ;
(41) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator ! = ( const /*тип-значения-для*/ < BidirIt > & ch,

const std:: sub_match < BidirIt > & rhs ) ;
(42) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator < ( const /*тип-значения-для*/ < BidirIt > & ch,

const std:: sub_match < BidirIt > & rhs ) ;
(43) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator <= ( const /*value-type-of*/ < BidirIt > & ch,

const std:: sub_match < BidirIt > & rhs ) ;
(44) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator > ( const /*тип-значения-для*/ < BidirIt > & ch,

const std:: sub_match < BidirIt > & rhs ) ;
(45) (начиная с C++11)
(до C++20)
template < class BidirIt >

bool operator >= ( const /*тип-значения-для*/ < BidirIt > & ch,

const std:: sub_match < BidirIt > & rhs ) ;
(46) (начиная с C++11)
(до C++20)
Вспомогательные псевдонимы типов
template < class BidirIt >

using /*тип-значения-для*/ =

typename std:: iterator_traits < BidirIt > :: value_type ;
(47) ( только для демонстрации* )
template < class BidirIt >

using /*cat-type-of*/ =
std:: compare_three_way_result_t

< std:: basic_string < /*value-type-of*/ < BidirIt >>> ;
(48) (начиная с C++20)
( только для демонстрации* )

Сравнивает sub_match с другим sub_match , со std::string , с C-строкой или с одиночным символом.

1-7) Сравнивает два sub_match напрямую.
8-20) Сравнивает sub_match с std::basic_string .
21-33) Сравнивает sub_match со строкой в стиле C.
34-46) Сравнивает sub_match с одиночным символом.

Операторы < , <= , > , >= и != синтезируются соответственно из operator <=> и operator == .

(начиная с C++20)
47) value-type-of  < BidirIt > является типом значения итератора BidirIt .
48) cat-type-of  < BidirIt > является типом результата трёхстороннего сравнения std:: sub_match < BidirIt > .

Содержание

Параметры

lhs, rhs - a sub_match для сравнения
str - a std::basic_string для сравнения
s - указатель на C-строку для сравнения
ch - символ для сравнения

Возвращаемое значение

Пусть target принимает следующие значения:

1-7) rhs
8-20) typename std:: sub_match < BidirIt > :: string_type ( str. data ( ) , str. size ( ) )
21-33) s
34-46) typename std:: sub_match < BidirIt > :: string_type ( 1 , ch )

Возвращаемые значения определяются следующим образом:

Оператор Возвращаемое значение
Перегрузки (1-14,21-27,34-40)
(перегрузки с параметром lhs )
Перегрузки (15-20,28-33,41-46)
(перегрузки без параметра lhs )
== lhs. compare ( target ) == 0 rhs. compare ( target ) == 0
!= lhs. compare ( target ) ! = 0 rhs. compare ( target ) ! = 0
< lhs. compare ( target ) < 0 rhs. compare ( target ) > 0
<= lhs. compare ( target ) <= 0 rhs. compare ( target ) >= 0
> lhs. compare ( target ) > 0 rhs. compare ( target ) < 0
>= lhs. compare ( target ) >= 0 rhs. compare ( target ) <= 0
<=> static_cast < cat-type-of  < BidirIt >>
( lhs. compare ( target ) <=> 0 )
Н/П

Примечания

Возвращаемый тип operator <=> гарантированно является типом категории сравнения. Если value-type-of  < BidirIt > является char , wchar_t , char8_t , char16_t или char32_t , возвращаемый тип operator<=> будет std::strong_ordering .

Пример

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применяется к Поведение как опубликовано Корректное поведение
LWG 2217 C++11 для сравнений с std::string , аргумент
функции compare() был str. c_str ( )
аргумент должен быть
string_type ( str. data ( ) , str. size ( ) ) )

Смотрите также

сравнивает соответствующую подпоследовательность (если есть)
(публичная функция-член)