std::pmr::operator==, std::pmr::operator!=
Материал из cppreference.com
< cpp | memory | polymorphic allocator
Определено в заголовочном файле <memory_resource> | ||
template<class T1, class T2 > bool operator==(conststd::pmr::polymorphic_allocator<T1>& lhs, | (1) | (начиная с C++17) |
friendbool operator==(const polymorphic_allocator& lhs, const polymorphic_allocator& rhs )noexcept; | (2) | (начиная с C++17) |
template<class T1, class T2 > bool operator!=(conststd::pmr::polymorphic_allocator<T1>& lhs, | (3) | (начиная с C++17) (до C++20) |
friendbool operator!=(const polymorphic_allocator& lhs, const polymorphic_allocator& rhs )noexcept; | (4) | (начиная с C++17) (до C++20) |
Сравнивает два полиморфных аллокатора. Два полиморфных аллокатора при сравнении равны, если их базовые ресурсы памяти при сравнении равны.
1) Возвращает *lhs.resource()==*rhs.resource().
2) То же, что и (1), с возможностью преобразования в
Эта функция не видна обычному неквалифицированному или квалифицированному поиску и может быть найдена только с помощью зависящего от аргумента поиска, когда
polymorphic_allocator
.Эта функция не видна обычному неквалифицированному или квалифицированному поиску и может быть найдена только с помощью зависящего от аргумента поиска, когда
std::pmr::polymorphic_allocator
является ассоциированным классом аргументом.3) Возвращает !(lhs == rhs).
4) То же, что и (3), с возможностью преобразования в
Эта функция не видна обычному неквалифицированному или квалифицированному поиску и может быть найдена только с помощью зависящего от аргумента поиска, когда
polymorphic_allocator
.Эта функция не видна обычному неквалифицированному или квалифицированному поиску и может быть найдена только с помощью зависящего от аргумента поиска, когда
std::pmr::polymorphic_allocator
является ассоциированным классом аргументом.Оператор | (начиная с C++20) |
[править]Параметры
lhs, rhs | — | полиморфные аллокаторы для сравнения |
[править]Возвращаемое значение
1,2)*lhs.resource()==*rhs.resource()
3,4)!(lhs == rhs)
[править]Отчёты о дефектах
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
Номер | Применён | Поведение в стандарте | Корректное поведение |
---|---|---|---|
LWG 3683 | C++17 | polymorphic_allocator не удавалось сравнить с конвертируемыми в него типами | добавлена перегрузка |