std::experimental::observer_ptr
Материал из cppreference.com
< cpp | experimental
<tbody>
</tbody>
| Определено в заголовочном файле <experimental/memory>
|
||
template< class W > class observer_ptr; |
(ТС основ библиотеки v2) | |
std::experimental::observer_ptr указатель, не являющийся владельцем, или наблюдателем. Наблюдатель хранит указатель на второй объект, известный как наблюдаемый объект. observer_ptr также может не иметь наблюдаемого объекта.
Наблюдатель не несет никакой ответственности за наблюдаемый объект; между наблюдателем и объектом, который он наблюдает, нет никаких внутренних отношений.
Он задуман как почти невозможная замена для типов необработанных указателей с тем преимуществом, что, как тип словаря, он указывает своё предполагаемое использование без необходимости детального анализа читателями кода.
Специализации observer_ptr соответствуют требованиям CopyConstructible и CopyAssignable.
| Требования к типам | ||
-W не должен быть ссылочным типом, но может быть неполным типом.
|
Типы-элементы
| Тип-элемент | Определение |
element_type
|
W, тип объекта, за которым наблюдает этот observer_ptr
|
Функции-элементы
создаёт новый observer_ptr (public функция-элемент) | |
(деструктор) (объявлено неявно) |
уничтожает observer_ptr (public функция-элемент) |
operator= (объявлено неявно) |
неявно объявленные операторы присваивания копированием и перемещением, которые присваивают хранимый указатель (public функция-элемент) |
Модификаторы | |
| возвращает указатель на наблюдаемый объект и прекращает наблюдение за объектом (public функция-элемент) | |
| заменяет наблюдаемый объект (public функция-элемент) | |
| обменивает наблюдаемые объекты (public функция-элемент) | |
Наблюдатели | |
| возвращает указатель на наблюдаемый объект (public функция-элемент) | |
| проверяет, есть ли связанный наблюдаемый объект (public функция-элемент) | |
| разыменовывает указатель на наблюдаемый объект (public функция-элемент) | |
Преобразования | |
| функция явного преобразования в сохранённый указатель (public функция-элемент) | |
Функции, не являющиеся элементами
создаёт observer_ptr, который наблюдает за объектом (шаблон функции) | |
сравнивает с другим observer_ptr или с nullptr (шаблон функции) | |
специализация алгоритма swap (шаблон функции) |
Вспомогательные классы
поддержка хеширования для observer_ptr (специализация шаблона класса) |
Пример
| Этот раздел не завершён Причина: нет примера |