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

std::experimental::observer_ptr

Материал из cppreference.com
 
 
Технические спецификации
Библиотека файловой системы (ТС файловой системы)
Основы библиотеки (ТС основ библиотеки)
Основы библиотеки 2 (ТС основ библиотеки v2)
Основы библиотеки 3 (ТС основы библиотеки v3)
Расширения для параллелизма (ТС параллелизма)
Расширения для параллелизма 2 (ТС параллелизма v2)
Расширения для конкуренции 2 (ТС конкуренции v2)
Концепты (ТС концепций)
Диапазоны (ТС диапазонов)
Рефлексия (ТС рефлексии)
Специальные математические функции (ТО специальные функции)
 
 
 
<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
(специализация шаблона класса) [править]

Пример