<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://51.250.0.107/w/index.php?action=history&amp;feed=atom&amp;title=Shared_interface_ptr%3A%3Ashared_interface_ptr</id>
	<title>Shared interface ptr::shared interface ptr - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://51.250.0.107/w/index.php?action=history&amp;feed=atom&amp;title=Shared_interface_ptr%3A%3Ashared_interface_ptr"/>
	<link rel="alternate" type="text/html" href="http://51.250.0.107/w/index.php?title=Shared_interface_ptr::shared_interface_ptr&amp;action=history"/>
	<updated>2026-05-01T09:48:04Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://51.250.0.107/w/index.php?title=Shared_interface_ptr::shared_interface_ptr&amp;diff=6205&amp;oldid=prev</id>
		<title>Андрей Чусов: Новая страница: «{{DISPLAYTITLE:shared_interface_ptr::shared_interface_ptr}} {{function_begin |shared_interface_ptr() {{=}} default; //1 template &lt;class Y&gt; explicit shared_interfa…»</title>
		<link rel="alternate" type="text/html" href="http://51.250.0.107/w/index.php?title=Shared_interface_ptr::shared_interface_ptr&amp;diff=6205&amp;oldid=prev"/>
		<updated>2018-01-02T11:50:14Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{DISPLAYTITLE:shared_interface_ptr::shared_interface_ptr}} {{function_begin |shared_interface_ptr() {{=}} default; //1 template &amp;lt;class Y&amp;gt; explicit shared_interfa…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:shared_interface_ptr::shared_interface_ptr}}&lt;br /&gt;
{{function_begin |shared_interface_ptr() {{=}} default; //1&lt;br /&gt;
template &amp;lt;class Y&amp;gt;&lt;br /&gt;
explicit shared_interface_ptr(Y* ptr); //2&lt;br /&gt;
template &amp;lt;class Y, class Alloc&amp;gt;&lt;br /&gt;
shared_interface_ptr(Y* ptr, Alloc alloc); //3&lt;br /&gt;
template &amp;lt;class Alloc&amp;gt;&lt;br /&gt;
shared_interface_ptr(std::nullptr_t, Alloc alloc); //4&lt;br /&gt;
template &amp;lt;class Y&amp;gt;&lt;br /&gt;
shared_interface_ptr(const shared_interface_ptr&amp;lt;Y&amp;gt;&amp;amp; right) noexcept; //5&lt;br /&gt;
template &amp;lt;class Y&amp;gt;&lt;br /&gt;
shared_interface_ptr(const shared_interface_ptr&amp;lt;Y&amp;gt;&amp;amp; rOwnership, element_type* ptr) noexcept; //6&lt;br /&gt;
template &amp;lt;class Y&amp;gt;&lt;br /&gt;
shared_interface_ptr(shared_interface_ptr&amp;lt;Y&amp;gt;&amp;amp;&amp;amp; right) noexcept; //7&lt;br /&gt;
template &amp;lt;class Y&amp;gt;&lt;br /&gt;
explicit shared_interface_ptr(const weak_interface_ptr&amp;lt;Y&amp;gt;&amp;amp; right); //8&lt;br /&gt;
template &amp;lt;class Y&amp;gt;&lt;br /&gt;
shared_interface_ptr(unique_interface_ptr&amp;lt;Y&amp;gt;&amp;amp;&amp;amp; right); //9|{{shared_interface_ptr::shared_interface_ptr brief}}&lt;br /&gt;
# Конструктор по умолчанию, создающий пустой смарт-указатель [[shared_interface_ptr]].&lt;br /&gt;
# Явный конструктор, который завладевает интерфейсным C-указателем &amp;lt;tt&amp;gt;ptr&amp;lt;/tt&amp;gt;. Конструктор определен, только если тип &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;Y*&amp;lt;/source&amp;gt; неявно преобразуем в интерфейсный C-указатель, для которого определен &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;*this&amp;lt;/source&amp;gt;.&lt;br /&gt;
# Конструктор, который завладевает интерфейсным C-указателем &amp;lt;tt&amp;gt;ptr&amp;lt;/tt&amp;gt; и использует для управления временем жизни адресуемого объекта указанный объект &amp;lt;tt&amp;gt;alloc&amp;lt;/tt&amp;gt;, удовлетворяющий требованиям {{cpp_concept|Allocator}}. Конструктор определен, только если тип &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;Y*&amp;lt;/source&amp;gt; неявно преобразуем в интерфейсный C-указатель, для которого определен &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;*this&amp;lt;/source&amp;gt;.&lt;br /&gt;
# Конструктор, который создает пустой смарт-указатель [[shared_interface_ptr]]. Используется при инициализации значением &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;nullptr&amp;lt;/source&amp;gt;. Для управления временем жизни адресуемого объекта используется указанный объект &amp;lt;tt&amp;gt;alloc&amp;lt;/tt&amp;gt;, удовлетворяющий требованиям {{cpp_concept|Allocator}}.&lt;br /&gt;
# Конструктор, разделяющий владение объектом, с экземпляром &amp;lt;tt&amp;gt;right&amp;lt;/tt&amp;gt; класса &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;shared_interface_ptr&amp;lt;Y&amp;gt;&amp;lt;/source&amp;gt;. Определен, только если тип &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;Y*&amp;lt;/source&amp;gt; неявно преобразуем в тип интерфейсного C-указателя, для которого определен тип создаваемого объекта.&lt;br /&gt;
# Конструктор, инициализирующий создаваемый объект [[shared_interface_ptr]] интерфейсным указателем &amp;lt;tt&amp;gt;ptr&amp;lt;/tt&amp;gt;, но с использованием для управления временем жизни адресуемого объекта не связанный с &amp;lt;tt&amp;gt;ptr&amp;lt;/tt&amp;gt; типами параметр &amp;lt;tt&amp;gt;rOwnership&amp;lt;/tt&amp;gt;. Существование &amp;lt;tt&amp;gt;ptr&amp;lt;/tt&amp;gt; считается прекращенным при уничтожении соответствующего экземпляра &amp;lt;tt&amp;gt;rOwnership&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Конструктор, осуществляющий перемещение состояния &amp;lt;tt&amp;gt;right&amp;lt;/tt&amp;gt; для инициализации создаваемого объекта. После вызова &amp;lt;tt&amp;gt;right&amp;lt;/tt&amp;gt; становится пустым. Конструктор участвует в перегрузке только, если тип &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;Y*&amp;lt;/source&amp;gt; неявно преобразуем в тип интерфейсного C-указателя, для которого определен тип создаваемого объекта.&lt;br /&gt;
# Конструктор, инициализируещий создаваемый объект интерфейсным указателем, с которым ассоциирован объект &amp;lt;tt&amp;gt;right&amp;lt;/tt&amp;gt; типа [[weak_interface_ptr]]. Если последний пуст генерируется исключение [http://en.cppreference.com/w/cpp/memory/bad_weak_ptr std::bad_weak_ptr] - в отличие от [[weak_ptr::lock]]. Конструктор участвует в перегрузке только, если тип &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;Y*&amp;lt;/source&amp;gt; неявно преобразуем в тип интерфейсного C-указателя, для которого определен тип создаваемого объекта.&lt;br /&gt;
# Конструктор, осуществляющий преобразование смарт-указателя с эксклюзивным владением [[unique_interface_ptr]] в указатель с разделяемым владением [[shared_interface_ptr]]. После вызова эксклюзивный указатель &amp;lt;tt&amp;gt;right&amp;lt;/tt&amp;gt; становится пустым. Конструктор участвует в перегрузке только, если тип &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;Y*&amp;lt;/source&amp;gt; неявно преобразуем в тип интерфейсного C-указателя, для которого определен тип создаваемого объекта.}}&lt;br /&gt;
{{function template paramlist begin}}&lt;br /&gt;
{{function template paramlist add|Y|Тип интерфейса, указатель на который неявно преобразуется в указатель &amp;lt;tt&amp;gt;_I*&amp;lt;/tt&amp;gt; (шаблонный параметр класса [[shared_interface_ptr]]) и, в результате, инициализирует создаваемый экземпляр [[shared_interface_ptr]].}}&lt;br /&gt;
{{function template paramlist add|Alloc|Тип, удовлетворяющий требованиям {{cpp_concept|Allocator}}, менеджера памяти C++, используемого для управления временем жизни адресуемого смарт-указателем [[shared_interface_ptr]] объекта и дополнительных структур данных.}}&lt;br /&gt;
{{function template paramlist end}}&lt;br /&gt;
{{function_paramlist begin}}&lt;br /&gt;
{{function_paramlist add|ptr|Интерфейсный C-указатель, которым инициалищируется создаваемый смарт-указатель.}}&lt;br /&gt;
{{function_paramlist add|alloc|Менеджер памяти C++, используемый для управления временем жизни объекта, адресуемого [[shared_interface_ptr]], а также динамических компонентов, определяемых реализацией [[shared_interface_ptr]]. Используется на серверной стороне реализациями программных интерфейсов.}}&lt;br /&gt;
{{function_paramlist add|right|Умный указатель, который инициализирует создаваемый указатель [[shared_interface_ptr]].}}&lt;br /&gt;
{{function_paramlist add|rOwnership|Умный указатель, с которым разделяется владение для управления временем жизни несвязанного с ним интерфейсного указателя &amp;lt;tt&amp;gt;ptr&amp;lt;/tt&amp;gt; при использовании перегрузки 6.}}&lt;br /&gt;
{{function_paramlist end}}&lt;br /&gt;
{{function exceptionlist begin}}&lt;br /&gt;
{{function exceptionlist add|[http://en.cppreference.com/w/cpp/memory/new/bad_alloc std::bad_alloc]|Исключение, которое генерируется перегрузками 2-4, при нехватке памяти при попытке ее выделения.}}&lt;br /&gt;
{{function exceptionlist add|[http://en.cppreference.com/w/cpp/memory/bad_weak_ptr std::bad_weak_ptr]|Исключение, которое генерируется перегрузкой 8, если параметр &amp;lt;tt&amp;gt;ptr&amp;lt;/tt&amp;gt; не адресует действительного интерфейса.}}&lt;br /&gt;
{{function exceptionlist add|...|Другие исключения, определяемые реализацией [http://en.cppreference.com/w/cpp/memory/shared_ptr std::shared_ptr].}}&lt;br /&gt;
{{function exceptionlist end}}&lt;br /&gt;
{{function_end}}&lt;/div&gt;</summary>
		<author><name>Андрей Чусов</name></author>
	</entry>
</feed>