operator==, operator<=>(std::basic_stacktrace) — cppreference.com
Материал из cppreference.com
<tbody> </tbody>
|
|
(1) | (начиная с C++23) |
|
|
(2) | (начиная с C++23) |
1) Проверяет, равно ли содержимое lhs и rhs, то есть они имеют одинаковое количество элементов, и каждый элемент в lhs равен элементу в rhs в той же позиции.
Эквивалентно return std::equal(lhs.begin(), lhs.end(), rhs.begin(), rhs.end());.
2) Возвращает относительный порядок номеров записей трассировки стека в lhs и rhs, если они не равны. В противном случае (если количество элементов lhs и rhs равно), возвращает лексикографический порядок элементов lhs и rhs .
Эквивалентноif (auto cmp = lhs.size() <=> rhs.size(); cmp != 0) return cmp; else return std::lexicographical_compare_three_way(lhs.begin(), lhs.end(), rhs.begin(), rhs.end());.
Эти функции template не видны обычному неквалифицированному или квалифицированному поиску и могут быть найдены только с помощью зависящего от аргумента поиска, когда std::basic_stacktrace<Allocator> является ассоциированным классом аргументом.
Операторы <, <=, >, >= и != синтезируются из operator<=> и operator== соответственно.
Параметры
| lhs, rhs | — | basic_stacktrace, содержимое которых нужно сравнить
|
Возвращаемое значение
1) true, если содержимое lhs и rhs равно, false иначе.
2) lhs.size() <=> rhs.size(), если результат не std::strong_order::equal, лексикографический порядок элементов lhs и rhs иначе.
Сложность
1,2) Константая, если lhs и rhs имеют разный размер, линейная по размеру lhs иначе.