std::out_ptr_t<Smart,Pointer,Args...>::out_ptr_t
Материал из cppreference.com
<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, выделение нового управляющего блока может выполняться в конструкторе, а не в деструкторе.
Пример
| Этот раздел не завершён Причина: нет примера |