operator==, operator<=>(std::basic_stacktrace)
Материал из cppreference.com
< cpp | utility | basic stacktrace
template< class Allocator2 > friend bool operator==( const basic_stacktrace& lhs, |
(1) | (начиная с C++23) |
template< class Allocator2 > friend std::strong_ordering |
(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)
if (auto cmp = lhs.size() <=> rhs.size(); cmp != 0)
return cmp;
else
return std::lexicographical_compare_three_way(lhs.begin(), lhs.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 иначе.
[править] Пример
Этот раздел не завершён Причина: нет примера |