std::equivalence_relation
Определён в заголовочном файле <concepts> | ||
|---|---|---|
template< class R, class T, class U > concept equivalence_relation = std::relation<R, T, U>; | (начиная с C++20) |
Концепт equivalence_relation<R, T, U> задаёт, что relation R налагает на свои аргументы отношение эквивалентности.
Семантические требования
Отношение r является отношением эквивалентности, если
- оно рефлексивно: для всех
x,r(x, x)являетсяtrue; - оно симметрично: для всех
aиb,r(a, b)являетсяtrueтогда и только тогда, когдаr(b, a)являетсяtrue; - оно транзитивно: из
r(a, b) && r(b, c)следуетr(a, c).
Примечания
Различие между relation и equivalence_relation носит исключительно семантический характер.
Ссылки
- Стандарт C++23 (ISO/IEC 14882:2024):
- 18.7.6 Концепт
equivalence_relation[concept.equiv] - Стандарт C++20 (ISO/IEC 14882:2020):
- 18.7.6 Концепт
equivalence_relation[concept.equiv]
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/concepts/equivalence_relation