(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Конструкторы класса 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. |