Пространства имён
Варианты
Действия

std::owner_less

Материал из cppreference.com
< cpp‎ | memory
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Динамическое управление памятью
no section name
Ограниченные алгоритмы неинициализированной памяти
no section name
Поддержка сбора мусора
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)



no section name
 
Определено в заголовочном файле <memory>
template<>
struct owner_less<void>;
(начиная с C++17)

std::owner_less<> это специализация std::owner_less с выведенными типами параметров.

Содержание

[править] Типы элементы

Тип элемент Определение
is_transparent не указано

[править] Примечание

Тип элемент is_transparent указывает вызывающему объекту, что этот функциональный объект является прозрачным: он принимает аргументы произвольных типов и использует идеальную переадресацию, которая позволяет избежать ненужного копирования и преобразования, когда функциональный объект используется в разнородном контексте или с аргументами rvalue. В частности, шаблонные функции, такие как std::set::find и std::set::lower_bound , используют этот тип элемента в своих типах Compare.

Макрос Тестирования функциональности Значение Стандарт Функциональность
__cpp_lib_transparent_operators 201510L (C++17) Прозрачный std::owner_less (std::owner_less<void>)

[править] Функции-элементы

operator()
сравнивает свои аргументы, используя семантику на основе владельца
(функция)

std::owner_less<void>::operator()

template<class T, class U>

bool operator()( const std::shared_ptr<T>& lhs,

                 const std::shared_ptr<U>& rhs ) const noexcept;
(начиная с C++17)
template<class T, class U>

bool operator()( const std::shared_ptr<T>& lhs,

                 const std::weak_ptr<U>& rhs ) const noexcept;
(начиная с C++17)
template<class T, class U>

bool operator()( const std::weak_ptr<T>& lhs,

                 const std::shared_ptr<U>& rhs ) const noexcept;
(начиная с C++17)
template<class T, class U>

bool operator()( const std::weak_ptr<T>& lhs,

                 const std::weak_ptr<U>& rhs ) const noexcept;
(начиная с C++17)

Сравнивает lhs и rhs, используя семантику на основе владельца. Эффективно вызывает lhs.owner_before(rhs).

Порядок является строгим слабым отношением порядка.

lhs и rhs эквивалентны, только если они оба пусты или имеют общее владение.

Параметры

lhs, rhs указатели общего владения для сравнения

Возвращаемое значение

true, если lhs меньше чем rhs, как определено порядком на основе владельцев.

[править] Смотрите также

обеспечивает упорядочивание общих указателей на основе владельца
(public функция-элемент std::shared_ptr) [править]
обеспечивает упорядочивание слабых указателей на основе владельцев
(public функция-элемент std::weak_ptr<T>) [править]