operator==, operator<=>(std::basic_stacktrace)
Материал из cppreference.com
< cpp | utility | basic stacktrace
template<class Allocator2 > friendbool operator==(const basic_stacktrace& lhs, | (1) | (начиная с C++23) |
template<class Allocator2 > friendstd::strong_ordering | (2) | (начиная с C++23) |
1) Проверяет, равно ли содержимое lhs и rhs, то есть они имеют одинаковое количество элементов, и каждый элемент в lhs равен элементу в rhs в той же позиции.
Эквивалентно returnstd::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
returnstd::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 иначе.
[править]Пример
Этот раздел не завершён Причина: нет примера |