shared_interface_ptr::shared_interface_ptr
Перейти к навигации
Перейти к поиску
Параметры шаблона
Параметры
Возможные исключения
shared_interface_ptr() = default; //1
template <class Y>
explicit shared_interface_ptr(Y* ptr); //2
template <class Y, class Alloc>
shared_interface_ptr(Y* ptr, Alloc alloc); //3
template <class Alloc>
shared_interface_ptr(std::nullptr_t, Alloc alloc); //4
template <class Y>
shared_interface_ptr(const shared_interface_ptr<Y>& right) noexcept; //5
template <class Y>
shared_interface_ptr(const shared_interface_ptr<Y>& rOwnership, element_type* ptr) noexcept; //6
template <class Y>
shared_interface_ptr(shared_interface_ptr<Y>&& right) noexcept; //7
template <class Y>
explicit shared_interface_ptr(const weak_interface_ptr<Y>& right); //8
template <class Y>
shared_interface_ptr(unique_interface_ptr<Y>&& right); //9
Конструкторы класса shared_interface_ptr.
- Конструктор по умолчанию, создающий пустой смарт-указатель shared_interface_ptr.
- Явный конструктор, который завладевает интерфейсным C-указателем ptr. Конструктор определен, только если тип
Y*
неявно преобразуем в интерфейсный C-указатель, для которого определен*this
. - Конструктор, который завладевает интерфейсным C-указателем ptr и использует для управления временем жизни адресуемого объекта указанный объект alloc, удовлетворяющий требованиям Allocator. Конструктор определен, только если тип
Y*
неявно преобразуем в интерфейсный C-указатель, для которого определен*this
. - Конструктор, который создает пустой смарт-указатель shared_interface_ptr. Используется при инициализации значением
nullptr
. Для управления временем жизни адресуемого объекта используется указанный объект alloc, удовлетворяющий требованиям Allocator. - Конструктор, разделяющий владение объектом, с экземпляром right класса
shared_interface_ptr<Y>
. Определен, только если типY*
неявно преобразуем в тип интерфейсного C-указателя, для которого определен тип создаваемого объекта. - Конструктор, инициализирующий создаваемый объект shared_interface_ptr интерфейсным указателем ptr, но с использованием для управления временем жизни адресуемого объекта не связанный с ptr типами параметр rOwnership. Существование ptr считается прекращенным при уничтожении соответствующего экземпляра rOwnership.
- Конструктор, осуществляющий перемещение состояния right для инициализации создаваемого объекта. После вызова right становится пустым. Конструктор участвует в перегрузке только, если тип
Y*
неявно преобразуем в тип интерфейсного C-указателя, для которого определен тип создаваемого объекта. - Конструктор, инициализируещий создаваемый объект интерфейсным указателем, с которым ассоциирован объект right типа weak_interface_ptr. Если последний пуст генерируется исключение std::bad_weak_ptr - в отличие от weak_ptr::lock. Конструктор участвует в перегрузке только, если тип
Y*
неявно преобразуем в тип интерфейсного C-указателя, для которого определен тип создаваемого объекта. - Конструктор, осуществляющий преобразование смарт-указателя с эксклюзивным владением unique_interface_ptr в указатель с разделяемым владением shared_interface_ptr. После вызова эксклюзивный указатель right становится пустым. Конструктор участвует в перегрузке только, если тип
Y*
неявно преобразуем в тип интерфейсного C-указателя, для которого определен тип создаваемого объекта.
Y | Тип интерфейса, указатель на который неявно преобразуется в указатель _I* (шаблонный параметр класса shared_interface_ptr) и, в результате, инициализирует создаваемый экземпляр shared_interface_ptr. |
Alloc | Тип, удовлетворяющий требованиям Allocator, менеджера памяти C++, используемого для управления временем жизни адресуемого смарт-указателем shared_interface_ptr объекта и дополнительных структур данных. |
ptr | Интерфейсный C-указатель, которым инициалищируется создаваемый смарт-указатель. | |
alloc | Менеджер памяти C++, используемый для управления временем жизни объекта, адресуемого shared_interface_ptr, а также динамических компонентов, определяемых реализацией shared_interface_ptr. Используется на серверной стороне реализациями программных интерфейсов. | |
right | Умный указатель, который инициализирует создаваемый указатель shared_interface_ptr. | |
rOwnership | Умный указатель, с которым разделяется владение для управления временем жизни несвязанного с ним интерфейсного указателя ptr при использовании перегрузки 6. |
std::bad_alloc | Исключение, которое генерируется перегрузками 2-4, при нехватке памяти при попытке ее выделения. |
std::bad_weak_ptr | Исключение, которое генерируется перегрузкой 8, если параметр ptr не адресует действительного интерфейса. |
... | Другие исключения, определяемые реализацией std::shared_ptr. |