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

std::out_ptr_t<Smart,Pointer,Args...>::out_ptr_t

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, 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
 
std::out_ptr_t
Функции-элементы
Функции, не являющиеся элементами
 
<tbody> </tbody>
explicit out_ptr_t( Smart &sp, Args... args );
(1) (начиная с C++23)
out_ptr_t( const out_ptr_t& ) = delete;
(2) (начиная с C++23)
1) Создаёт out_ptr_t. Адаптирует sp, как если бы привязывал его к элементу Smart&, захватывает каждый аргумент t в args..., как если бы инициализировал соответствующий элемент типа T в Args... с помощью std::forward<T>(t), затем инициализирует значением сохранённый Pointer.
2) Конструктор копирования явно удалён. out_ptr_t нельзя ни копировать, ни перемещать.

Параметры

sp объект (обычно умный указатель) для адаптации
args... аргументы, используемые для сброса при захвате

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

(нет)

Исключения

Может генерировать исключения, определённые реализацией.

Примечание

После построения объект Pointer или void*, на который указывает возвращаемое значение любой из функций преобразования, равен nullptr.

Каждый аргумент в args... перемещается в созданный out_ptr_t, если он имеет тип объекта, или передаётся в созданный out_ptr_t как есть, если он является ссылочным типом.

Конструктор out_ptr_t может генерировать исключения. Например, когда sp представляет собой std::shared_ptr, выделение нового управляющего блока может выполняться в конструкторе, а не в деструкторе.

Пример