shared_ptr по блокам управления, а не по адресам объектов, сравнивает owner_before. Результат стабилен для разных копий одного владельца и годится как.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpUpOb 360 of 696 menu
◀ ▶

Порядок владельцев owner_before в C++

Два shared_ptr по блокам управления, а не по адресам объектов, сравнивает owner_before.

Результат стабилен для разных копий одного владельца и годится как ключ в ассоциативных контейнерах вместе с std::owner_less. Запишем два независимых shared_ptr и выведем результат сравнения:

#include <iostream> #include <memory> std::shared_ptr<int> left = std::make_shared<int>(1); std::shared_ptr<int> right = std::make_shared<int>(2); bool order = left.owner_before(right); std::cout << order << "\n";

Создайте три shared_ptr<int> через make_shared с разными значениями. Выведите 1, если первый owner_before второго, иначе 0.

Скопируйте shared_ptr<int> в две переменные. Проверьте, что owner_before между копией и оригиналом дает 0, и выведите этот результат.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить