<?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=ArbitrarilyAccessedDataStorageInputOwn%3A%3Aoperator%3D</id>
	<title>ArbitrarilyAccessedDataStorageInputOwn::operator= - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://51.250.0.107/w/index.php?action=history&amp;feed=atom&amp;title=ArbitrarilyAccessedDataStorageInputOwn%3A%3Aoperator%3D"/>
	<link rel="alternate" type="text/html" href="http://51.250.0.107/w/index.php?title=ArbitrarilyAccessedDataStorageInputOwn::operator%3D&amp;action=history"/>
	<updated>2026-05-01T10:55:49Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://51.250.0.107/w/index.php?title=ArbitrarilyAccessedDataStorageInputOwn::operator%3D&amp;diff=9025&amp;oldid=prev</id>
		<title>Андрей Чусов в 07:07, 15 августа 2019</title>
		<link rel="alternate" type="text/html" href="http://51.250.0.107/w/index.php?title=ArbitrarilyAccessedDataStorageInputOwn::operator%3D&amp;diff=9025&amp;oldid=prev"/>
		<updated>2019-08-15T07:07:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия 17:07, 15 августа 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Строка 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|{{ArbitrarilyAccessedDataStorageInputOwn::operator{{=}} brief}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|{{ArbitrarilyAccessedDataStorageInputOwn::operator{{=}} brief}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Оператор присваивания с перемещением, который переносит владение реализацией накопителя данных адаптеру {{cpp_this}}. Присваивание адаптеру разрешено, только если он не был до этого проинициализирован действительным адресом реализации накопителя или был сброшен с помощью [[ArbitrarilyAccessedDataStorageInputOwn::release_ownership]] или [[ArbitrarilyAccessedDataStorageInputOwn::reset_ownership]] без параметров. В противном случае генерируются исключения - [https://www.chusov.org/doxygen/struct_chusov_1_1_exceptions_1_1_unsupported_call_exception.html Chusov::Exceptions::UnsupportedCallException], если {{param|right}} не содержит реализации [[IArbitrarilyAccessedDataStorageInput]], и [https://www.chusov.org/doxygen/struct_chusov_1_1_exceptions_1_1_invalid_parameter_exception.html Chusov::Exceptions::InvalidParameterException] - в противном случае.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Оператор присваивания с перемещением, который переносит владение реализацией накопителя данных адаптеру {{cpp_this}}. Присваивание адаптеру разрешено, только если он не был до этого проинициализирован действительным адресом реализации накопителя или был сброшен с помощью [[ArbitrarilyAccessedDataStorageInputOwn::release_ownership]] или [[ArbitrarilyAccessedDataStorageInputOwn::reset_ownership]] без параметров. В противном случае генерируются исключения - [https://www.chusov.org/doxygen/struct_chusov_1_1_exceptions_1_1_unsupported_call_exception.html Chusov::Exceptions::UnsupportedCallException], если {{param|right}} не содержит реализации [[IArbitrarilyAccessedDataStorageInput]], и [https://www.chusov.org/doxygen/struct_chusov_1_1_exceptions_1_1_invalid_parameter_exception.html Chusov::Exceptions::InvalidParameterException] - в противном случае.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Аналогично, но с приведением типа указателя на реализацию с &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;typename std::remove_reference_t&amp;lt;RightAdapterType&amp;gt;::interface_type*&amp;lt;/source&amp;gt; к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;. Данная перегрузка участвует в процедуре разрешения перегрузок, только если &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;RightAdapterType&amp;amp;&amp;amp;&amp;lt;/source&amp;gt; является rvalue-ссылкой, тип &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;std::decay_t&amp;lt;RightAdapterType&amp;gt;&amp;lt;/source&amp;gt; является [[владеющий адаптер|адаптером с владением]] с подтипом &amp;lt;tt&amp;gt;interface_type&amp;lt;/tt&amp;gt;, указатель на который неявно приводим к &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Аналогично, но с приведением типа указателя на реализацию с &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;typename std::remove_reference_t&amp;lt;RightAdapterType&amp;gt;::interface_type*&amp;lt;/source&amp;gt; к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;const &lt;/ins&gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;. Данная перегрузка участвует в процедуре разрешения перегрузок, только если &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;RightAdapterType&amp;amp;&amp;amp;&amp;lt;/source&amp;gt; является rvalue-ссылкой, тип &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;std::decay_t&amp;lt;RightAdapterType&amp;gt;&amp;lt;/source&amp;gt; является [[владеющий адаптер|адаптером с владением]] с подтипом &amp;lt;tt&amp;gt;interface_type&amp;lt;/tt&amp;gt;, указатель на который неявно приводим к &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;const &lt;/ins&gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist begin}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist begin}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist add|RightAdapterType|Тип адаптера с владением реализацией интерфейса [[IArbitrarilyAccessedDataStorageInput]] (или неявно приводимого к &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;нему &lt;/del&gt;интерфейса), которая передается экземпляру {{cpp_this}} адаптера перегрузкой 2. Тип &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;std::decay_t&amp;lt;RightAdapterType&amp;gt;&amp;lt;/source&amp;gt; должен задавать адаптер с владением через указатель, приводимый к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist add|RightAdapterType|Тип адаптера с владением реализацией интерфейса [[IArbitrarilyAccessedDataStorageInput]] (или неявно приводимого к &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;const IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt; &lt;/ins&gt;интерфейса), которая передается экземпляру {{cpp_this}} адаптера перегрузкой 2. Тип &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;std::decay_t&amp;lt;RightAdapterType&amp;gt;&amp;lt;/source&amp;gt; должен задавать адаптер с владением через указатель, приводимый к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;const &lt;/ins&gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist end}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist end}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist begin}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist begin}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-9023:rev-9025 --&gt;
&lt;/table&gt;</summary>
		<author><name>Андрей Чусов</name></author>
	</entry>
	<entry>
		<id>http://51.250.0.107/w/index.php?title=ArbitrarilyAccessedDataStorageInputOwn::operator%3D&amp;diff=9023&amp;oldid=prev</id>
		<title>Андрей Чусов: Отмена правки 9022, сделанной Андрей Чусов (обсуждение)</title>
		<link rel="alternate" type="text/html" href="http://51.250.0.107/w/index.php?title=ArbitrarilyAccessedDataStorageInputOwn::operator%3D&amp;diff=9023&amp;oldid=prev"/>
		<updated>2019-08-15T07:06:20Z</updated>

		<summary type="html">&lt;p&gt;Отмена правки 9022, сделанной &lt;a href=&quot;/w/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%A7%D1%83%D1%81%D0%BE%D0%B2&quot; title=&quot;Служебная:Вклад/Андрей Чусов&quot;&gt;Андрей Чусов&lt;/a&gt; (&lt;a href=&quot;/w/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%A7%D1%83%D1%81%D0%BE%D0%B2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Обсуждение участника:Андрей Чусов (страница не существует)&quot;&gt;обсуждение&lt;/a&gt;)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия 17:06, 15 августа 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_begin|ArbitrarilyAccessedDataStorageInputOwn&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;() noexcept; //1&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_begin|ArbitrarilyAccessedDataStorageInputOwn&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp; operator{{=}}&lt;/ins&gt;(ArbitrarilyAccessedDataStorageInputOwn&amp;amp;&amp;amp; right); //&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;explicit ArbitrarilyAccessedDataStorageInputOwn(const IArbitrarilyAccessedDataStorageInput* pArbitrarilyAccessedDataStorage) noexcept; //2&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;template &amp;lt;class &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ArbitrarilyAccessedDataStorageInputOwn&lt;/del&gt;(ArbitrarilyAccessedDataStorageInputOwn&amp;amp;&amp;amp; right) &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;noexcept&lt;/del&gt;; //&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ArbitrarilyAccessedDataStorageInputOwn&amp;amp; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;operator{{=}}&lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&lt;/ins&gt;&amp;amp;&amp;amp; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;right&lt;/ins&gt;); //&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;template &amp;lt;class &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterRef&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|{{ArbitrarilyAccessedDataStorageInputOwn::&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;operator{{=}} &lt;/ins&gt;brief}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;explicit &lt;/del&gt;ArbitrarilyAccessedDataStorageInputOwn&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(const AnotherAdapterRef&lt;/del&gt;&amp;amp; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;refRight) noexcept; //4&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Оператор присваивания с перемещением&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;который переносит владение реализацией &lt;/ins&gt;накопителя данных &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;адаптеру &lt;/ins&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cpp_this&lt;/ins&gt;}}&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Присваивание адаптеру разрешено&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;только &lt;/ins&gt;если &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;он не &lt;/ins&gt;был &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;до этого проинициализирован действительным &lt;/ins&gt;адресом реализации &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;накопителя или был сброшен с помощью [[ArbitrarilyAccessedDataStorageInputOwn::release_ownership]] или &lt;/ins&gt;[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ArbitrarilyAccessedDataStorageInputOwn::reset_ownership&lt;/ins&gt;]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;без параметров. В противном случае генерируются исключения - [https://www.chusov.org/doxygen/struct_chusov_1_1_exceptions_1_1_unsupported_call_exception.html Chusov::Exceptions::UnsupportedCallException], если &lt;/ins&gt;{{param|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;right&lt;/ins&gt;}} &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;не содержит реализации [[IArbitrarilyAccessedDataStorageInput]], и [https://www.chusov&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;org&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;doxygen&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;struct_chusov_1_1_exceptions_1_1_invalid_parameter_exception&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;html Chusov::Exceptions::InvalidParameterException] - &lt;/ins&gt;в &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;противном случае.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;template &amp;lt;class AnotherAdapterOwn&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Аналогично&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;но с приведением типа указателя на реализацию с &lt;/ins&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;typename std&lt;/ins&gt;::&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;remove_reference_t&lt;/ins&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&lt;/ins&gt;&amp;gt;::interface_type*&amp;lt;/source&amp;gt; к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Данная перегрузка &lt;/ins&gt;участвует в &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;процедуре разрешения перегрузок&lt;/ins&gt;, только если &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&amp;amp;&amp;amp;&lt;/ins&gt;&amp;lt;/source&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;является rvalue-ссылкой&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;тип &lt;/ins&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;std&lt;/ins&gt;::&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;decay_t&lt;/ins&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&lt;/ins&gt;&amp;gt;&amp;lt;/source&amp;gt; является [[владеющий адаптер|адаптером с владением]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;с подтипом &lt;/ins&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tt&lt;/ins&gt;&amp;gt;interface_type&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tt&lt;/ins&gt;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, указатель на который неявно приводим &lt;/ins&gt;к &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ArbitrarilyAccessedDataStorageInputOwn&lt;/del&gt;(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;const AnotherAdapterOwn&lt;/del&gt;&amp;amp; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ownRight) noexcept; //5&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;template &amp;lt;class AnotherAdapterOwn&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ArbitrarilyAccessedDataStorageInputOwn(AnotherAdapterOwn&lt;/del&gt;&amp;amp;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp; ownRight&lt;/del&gt;) &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;noexcept&lt;/del&gt;; //&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;6&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|{{ArbitrarilyAccessedDataStorageInputOwn::&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ArbitrarilyAccessedDataStorageInputOwn &lt;/del&gt;brief}}&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Конструктор по умолчанию&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;инициализирующий создаваемый экземпляр адаптера нулевым адресом.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Явный конструктор, инициализирующий создаваемый экземпляр адаптера адресом реализации &lt;/del&gt;накопителя данных&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Конструктор, выполняющий инициализацию адаптера с перемещением адреса реализации, с которой ассоциирован параметр. Адаптер &lt;/del&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;param|right&lt;/del&gt;}} &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;в результате операции теряет владение реализацией накопителя данных&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;как &lt;/del&gt;если &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;бы &lt;/del&gt;был &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;выполнен вызов &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;right.release_ownership()&amp;lt;/source&amp;gt; с присваиванием возвращенного адреса создаваемому адаптеру.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Явный конструктор, создающий адаптер с &lt;/del&gt;адресом реализации &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;интерфейса, полученным из &lt;/del&gt;[[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ссылочный адаптер|ссылочного адаптера&lt;/del&gt;]] {{param|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;refRight&lt;/del&gt;}} &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;путем вызова &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;refRight&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;get_interface()-&amp;gt;Clone()&amp;lt;&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source&amp;gt; с неявным приведением результата к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;const IArbitrarilyAccessedDataStorageInput*&amp;lt;&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source&amp;gt;&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Данный конструктор участвует &lt;/del&gt;в &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;разрешении перегрузки&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;только если подтип &lt;/del&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterRef&lt;/del&gt;::&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;interface_type&lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/source&amp;gt; существует и поддерживает метод &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&lt;/del&gt;&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterRef::interface_type::Clone()&amp;lt;/source&amp;gt;, указатель &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;AnotherAdapterRef&lt;/del&gt;::interface_type*&amp;lt;/source&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;приводим неявно &lt;/del&gt;к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;const &lt;/del&gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, а сам тип {{param|AnotherAdapterRef}} является [[ссылочный адаптер|ссылочным адаптером]].&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Конструктор, создающий экземпляр адаптера на основе заданного параметрически владеющего адаптера путем клонирования интерфейса (то есть вызова метода &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;ownRight.get_interface()-&amp;gt;Clone()&amp;lt;/source&amp;gt;)&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Данный конструктор &lt;/del&gt;участвует в &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;разрешении перегрузки&lt;/del&gt;, только если &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;подтип &lt;/del&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterOwn::interface_type&amp;lt;/source&amp;gt; существует и поддерживает метод &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;AnotherAdapterOwn::interface_type::Clone()&lt;/del&gt;&amp;lt;/source&amp;gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;указатель &lt;/del&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterOwn&lt;/del&gt;::&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;interface_type*&lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/source&lt;/del&gt;&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;приводим неявно к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;const IArbitrarilyAccessedDataStorageInput*&lt;/del&gt;&amp;lt;/source&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, а сам тип {{param|AnotherAdapterOwn}} &lt;/del&gt;является [[владеющий адаптер|адаптером с владением]]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Конструктор, создающий экземпляр адаптера путем переноса адреса реализации интерфейса &lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source lang=&amp;quot;cpp&amp;quot; inline&lt;/del&gt;&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterOwn::&lt;/del&gt;interface_type&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source&lt;/del&gt;&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;с приведением его &lt;/del&gt;к &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;типу &lt;/del&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;const &lt;/del&gt;IArbitrarilyAccessedDataStorageInput*&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/source&amp;gt;. В результате вызова адаптер {{param|ownRight}} теряет владение своим экземпляром реализации интерфейса &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;AnotherAdapterOwn::interface_type&amp;lt;/source&amp;gt; и инициализируется нулевым адресом, как если бы был выполнен вызов &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;ownRight.release_ownership()&lt;/del&gt;&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist begin}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist begin}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist add|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterRef&lt;/del&gt;|Тип &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ссылочного &lt;/del&gt;адаптера&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, участвующего в качестве параметра {{param|refRight}} в конструкторе 4. Значение &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;std::is_convertible_v&amp;lt;typename AnotherAdapterRef::interface_type*, const IArbitrarilyAccessedDataStorageInput*&amp;gt;&amp;lt;/source&amp;gt; должно быть {{cpp_true}}, адаптер - &lt;/del&gt;[[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ссылочный адаптер|ссылочным&lt;/del&gt;]]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, а интерфейс &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;AnotherAdapterRef::interface_type&amp;lt;/source&amp;gt; должен поддерживать вызов &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;pI-&amp;gt;Clone&lt;/del&gt;(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;pCopy&lt;/del&gt;)&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/source&amp;gt;&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;где &amp;lt;tt&amp;gt;pI&amp;lt;/tt&amp;gt; - указатель оригинальную реализацию интерфейса &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;AnotherAdapterRef::interface_type&amp;lt;/source&amp;gt;, &amp;lt;tt&amp;gt;pCopy&amp;lt;/tt&amp;gt; - указатель, на выходе функции &amp;lt;tt&amp;gt;Clone&amp;lt;/tt&amp;gt; принимающий адрес копии оригинальной реализации.}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist add|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&lt;/ins&gt;|Тип адаптера &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;с владением реализацией интерфейса &lt;/ins&gt;[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;IArbitrarilyAccessedDataStorageInput&lt;/ins&gt;]] (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;или неявно приводимого к нему интерфейса&lt;/ins&gt;), &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;которая передается экземпляру &lt;/ins&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cpp_this&lt;/ins&gt;}} &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;адаптера перегрузкой 2&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Тип &lt;/ins&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;std::&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;decay_t&lt;/ins&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&lt;/ins&gt;&amp;gt;&amp;lt;/source&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;должен задавать &lt;/ins&gt;адаптер &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;с владением через указатель&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;приводимый к типу &lt;/ins&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;IArbitrarilyAccessedDataStorageInput*&lt;/ins&gt;&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{function template paramlist add|AnotherAdapterOwn|Тип адаптера с владением, участвующего в качестве параметра &lt;/del&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;param|ownRight&lt;/del&gt;}} &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;в конструкторах 5 и 6&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Значение &lt;/del&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;std::&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;is_convertible_v&lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;typename AnotherAdapterOwn::interface_type*, const IArbitrarilyAccessedDataStorageInput*&lt;/del&gt;&amp;gt;&amp;lt;/source&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;должно быть {{cpp_true}}, &lt;/del&gt;адаптер &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- [[владеющий адаптер|владеющим]]. Для копирования перегрузкой 5 интерфейс &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;AnotherAdapterOwn::interface_type&amp;lt;/source&amp;gt; также должен поддерживать вызов &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;pI-&amp;gt;Clone(&amp;amp;pCopy)&amp;lt;/source&amp;gt;&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;где &amp;lt;tt&amp;gt;pI&amp;lt;/tt&amp;gt; - указатель оригинальную реализацию интерфейса &lt;/del&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterRef::interface_type&lt;/del&gt;&amp;lt;/source&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &amp;lt;tt&amp;gt;pCopy&amp;lt;/tt&amp;gt; - указатель, на выходе функции &amp;lt;tt&amp;gt;Clone&amp;lt;/tt&amp;gt; принимающий адрес копии оригинальной реализации&lt;/del&gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist end}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist end}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist begin}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist begin}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{function_paramlist add|pArbitrarilyAccessedDataStorage|Указатель на адаптируемую реализацию накопителя данных [[IArbitrarilyAccessedDataStorageInput]].|paramdir=[in]}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist add|right|Адаптер, передающий владение своим интерфейсным указателем, если он есть, создаваемому экземпляру [[ArbitrarilyAccessedDataStorageInputOwn]], как если бы был выполнен вызов &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;right.release_ownership()&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist add|right|Адаптер, передающий владение своим интерфейсным указателем, если он есть, создаваемому экземпляру [[ArbitrarilyAccessedDataStorageInputOwn]], как если бы был выполнен вызов &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;right.release_ownership()&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{function_paramlist add|refRight|[[Ссылочный адаптер]], реализация интерфейса которого клонируется с целью создания копии, управляемой создаваемым адаптером, как если бы было выполнено создание адаптера путем вызова перегрузки 2 с аргументом &amp;lt;tt&gt;pCopy&amp;lt;/tt&gt;, получаемым в результате вызова &amp;lt;source lang=&quot;cpp&quot; inline&gt;refRight.get_interface()-&gt;Clone(&amp;amp;pCopy)&amp;lt;/source&gt;.}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{function_paramlist add|ownRight|[[Владеющий адаптер]], реализация интерфейса которого клонируется или переносится на создаваемый адаптер. Копирование выполняется перегрузкой 5, как если бы было выполнено создание адаптера путем вызова перегрузки 2 с аргументом &amp;lt;tt&gt;pCopy&amp;lt;/tt&gt;, получаемым в результате вызова &amp;lt;source lang=&quot;cpp&quot; inline&gt;ownRight.get_interface()-&gt;Clone(&amp;amp;pCopy)&amp;lt;/source&gt;. Перемещение выполняется перегрузкой 6, как если бы было выполнено создание адаптера путем вызова перегрузки 2 с аргументом &amp;lt;source lang=&quot;cpp&quot; inline&gt;ownRight.release_ownership()&amp;lt;/source&gt;.}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist end}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist end}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_end}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_end}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-9022:rev-9023 --&gt;
&lt;/table&gt;</summary>
		<author><name>Андрей Чусов</name></author>
	</entry>
	<entry>
		<id>http://51.250.0.107/w/index.php?title=ArbitrarilyAccessedDataStorageInputOwn::operator%3D&amp;diff=9022&amp;oldid=prev</id>
		<title>Андрей Чусов в 07:05, 15 августа 2019</title>
		<link rel="alternate" type="text/html" href="http://51.250.0.107/w/index.php?title=ArbitrarilyAccessedDataStorageInputOwn::operator%3D&amp;diff=9022&amp;oldid=prev"/>
		<updated>2019-08-15T07:05:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия 17:05, 15 августа 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_begin|ArbitrarilyAccessedDataStorageInputOwn&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp; operator{{=}}&lt;/del&gt;(ArbitrarilyAccessedDataStorageInputOwn&amp;amp;&amp;amp; right); //&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_begin|ArbitrarilyAccessedDataStorageInputOwn&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;() noexcept; //1&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;template &amp;lt;class &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;explicit ArbitrarilyAccessedDataStorageInputOwn(const IArbitrarilyAccessedDataStorageInput* pArbitrarilyAccessedDataStorage) noexcept; //2&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ArbitrarilyAccessedDataStorageInputOwn&amp;amp; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;operator{{=}}&lt;/del&gt;(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&lt;/del&gt;&amp;amp;&amp;amp; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;right&lt;/del&gt;); //&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ArbitrarilyAccessedDataStorageInputOwn&lt;/ins&gt;(ArbitrarilyAccessedDataStorageInputOwn&amp;amp;&amp;amp; right) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;noexcept&lt;/ins&gt;; //&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|{{ArbitrarilyAccessedDataStorageInputOwn::&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;operator{{=}} &lt;/del&gt;brief}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;template &amp;lt;class AnotherAdapterRef&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Оператор присваивания &lt;/del&gt;с перемещением, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;который переносит &lt;/del&gt;владение реализацией накопителя данных адаптеру &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{cpp_this}}&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Присваивание адаптеру разрешено&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;только если он не был до этого проинициализирован действительным &lt;/del&gt;адресом реализации &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;накопителя или был сброшен с помощью &lt;/del&gt;[[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ArbitrarilyAccessedDataStorageInputOwn::release_ownership]] или [[ArbitrarilyAccessedDataStorageInputOwn::reset_ownership&lt;/del&gt;]] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;без параметров. В противном случае генерируются исключения - [https://www.chusov.org/doxygen/struct_chusov_1_1_exceptions_1_1_unsupported_call_exception.html Chusov::Exceptions::UnsupportedCallException], если &lt;/del&gt;{{param|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;right&lt;/del&gt;}} &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;не содержит реализации [[IArbitrarilyAccessedDataStorageInput]], и [https://www&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;chusov.org&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;doxygen&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;struct_chusov_1_1_exceptions_1_1_invalid_parameter_exception&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;html Chusov&lt;/del&gt;::&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Exceptions::InvalidParameterException] - в противном случае.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;explicit ArbitrarilyAccessedDataStorageInputOwn(const AnotherAdapterRef&amp;amp; refRight) noexcept; //4&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Аналогично, но с приведением типа указателя на реализацию с &lt;/del&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;typename std&lt;/del&gt;::&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;remove_reference_t&lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&lt;/del&gt;&amp;gt;::interface_type*&amp;lt;/source&amp;gt; к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Данная перегрузка &lt;/del&gt;участвует в &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;процедуре разрешения перегрузок&lt;/del&gt;, только если &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&amp;amp;&amp;amp;&lt;/del&gt;&amp;lt;/source&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;является rvalue-ссылкой&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;тип &lt;/del&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;std&lt;/del&gt;::&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;decay_t&lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&lt;/del&gt;&amp;gt;&amp;lt;/source&amp;gt; является [[владеющий адаптер|адаптером с владением]] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;с подтипом &lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tt&lt;/del&gt;&amp;gt;interface_type&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tt&lt;/del&gt;&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, указатель на который неявно приводим &lt;/del&gt;к &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;template &amp;lt;class &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterOwn&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ArbitrarilyAccessedDataStorageInputOwn&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(const AnotherAdapterOwn&lt;/ins&gt;&amp;amp; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ownRight) noexcept; //5&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;template &amp;lt;class AnotherAdapterOwn&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ArbitrarilyAccessedDataStorageInputOwn&lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterOwn&lt;/ins&gt;&amp;amp;&amp;amp; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ownRight&lt;/ins&gt;) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;noexcept&lt;/ins&gt;; //&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;6&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|{{ArbitrarilyAccessedDataStorageInputOwn::&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ArbitrarilyAccessedDataStorageInputOwn &lt;/ins&gt;brief}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Конструктор по умолчанию, инициализирующий создаваемый экземпляр адаптера нулевым адресом.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Явный конструктор, инициализирующий создаваемый экземпляр адаптера адресом реализации накопителя данных.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Конструктор, выполняющий инициализацию адаптера &lt;/ins&gt;с перемещением &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;адреса реализации&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;с которой ассоциирован параметр. Адаптер {{param|right}} в результате операции теряет &lt;/ins&gt;владение реализацией накопителя данных&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, как если бы был выполнен вызов &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;right.release_ownership()&amp;lt;/source&amp;gt; с присваиванием возвращенного адреса создаваемому &lt;/ins&gt;адаптеру.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Явный конструктор&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;создающий адаптер с &lt;/ins&gt;адресом реализации &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;интерфейса, полученным из &lt;/ins&gt;[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ссылочный адаптер|ссылочного адаптера&lt;/ins&gt;]] {{param|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;refRight&lt;/ins&gt;}} &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;путем вызова &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;refRight&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;get_interface()-&amp;gt;Clone()&amp;lt;&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source&amp;gt; с неявным приведением результата к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;const IArbitrarilyAccessedDataStorageInput*&amp;lt;&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source&amp;gt;&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Данный конструктор участвует в разрешении перегрузки, только если подтип &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;AnotherAdapterRef&lt;/ins&gt;::&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;interface_type&amp;lt;/source&amp;gt; существует и поддерживает метод &lt;/ins&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterRef&lt;/ins&gt;::&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;interface_type::Clone()&amp;lt;/source&amp;gt;, указатель &lt;/ins&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source lang=&amp;quot;cpp&amp;quot; inline&lt;/ins&gt;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterRef&lt;/ins&gt;::interface_type*&amp;lt;/source&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;приводим неявно &lt;/ins&gt;к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;const &lt;/ins&gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, а сам тип {{param|AnotherAdapterRef}} является [[ссылочный адаптер|ссылочным адаптером]].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Конструктор, создающий экземпляр адаптера на основе заданного параметрически владеющего адаптера путем клонирования интерфейса (то есть вызова метода &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;ownRight.get_interface()-&amp;gt;Clone()&amp;lt;/source&amp;gt;)&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Данный конструктор &lt;/ins&gt;участвует в &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;разрешении перегрузки&lt;/ins&gt;, только если &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;подтип &lt;/ins&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterOwn::interface_type&amp;lt;/source&amp;gt; существует и поддерживает метод &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;AnotherAdapterOwn::interface_type::Clone()&lt;/ins&gt;&amp;lt;/source&amp;gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;указатель &lt;/ins&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterOwn&lt;/ins&gt;::&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;interface_type*&lt;/ins&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/source&lt;/ins&gt;&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;приводим неявно к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;const IArbitrarilyAccessedDataStorageInput*&lt;/ins&gt;&amp;lt;/source&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, а сам тип {{param|AnotherAdapterOwn}} &lt;/ins&gt;является [[владеющий адаптер|адаптером с владением]]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Конструктор, создающий экземпляр адаптера путем переноса адреса реализации интерфейса &lt;/ins&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source lang=&amp;quot;cpp&amp;quot; inline&lt;/ins&gt;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterOwn::&lt;/ins&gt;interface_type&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source&lt;/ins&gt;&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;с приведением его &lt;/ins&gt;к &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;типу &lt;/ins&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;const &lt;/ins&gt;IArbitrarilyAccessedDataStorageInput*&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/source&amp;gt;. В результате вызова адаптер {{param|ownRight}} теряет владение своим экземпляром реализации интерфейса &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;AnotherAdapterOwn::interface_type&amp;lt;/source&amp;gt; и инициализируется нулевым адресом, как если бы был выполнен вызов &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;ownRight.release_ownership()&lt;/ins&gt;&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist begin}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist begin}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist add|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&lt;/del&gt;|Тип адаптера &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;с владением реализацией интерфейса &lt;/del&gt;[[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;IArbitrarilyAccessedDataStorageInput&lt;/del&gt;]] (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;или неявно приводимого к нему &lt;/del&gt;интерфейса&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;которая передается экземпляру &lt;/del&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cpp_this&lt;/del&gt;}} &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;адаптера перегрузкой 2&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Тип &lt;/del&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;std::&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;decay_t&lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RightAdapterType&lt;/del&gt;&amp;gt;&amp;lt;/source&amp;gt; должен &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;задавать адаптер с владением через &lt;/del&gt;указатель&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, приводимый к типу &lt;/del&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;IArbitrarilyAccessedDataStorageInput*&lt;/del&gt;&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist add|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterRef&lt;/ins&gt;|Тип &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ссылочного &lt;/ins&gt;адаптера&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, участвующего в качестве параметра {{param|refRight}} в конструкторе 4. Значение &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;std::is_convertible_v&amp;lt;typename AnotherAdapterRef::interface_type*, const IArbitrarilyAccessedDataStorageInput*&amp;gt;&amp;lt;/source&amp;gt; должно быть {{cpp_true}}, адаптер - &lt;/ins&gt;[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ссылочный адаптер|ссылочным&lt;/ins&gt;]]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, а интерфейс &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;AnotherAdapterRef::interface_type&amp;lt;/source&amp;gt; должен поддерживать вызов &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;pI-&amp;gt;Clone&lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;pCopy)&amp;lt;/source&amp;gt;, где &amp;lt;tt&amp;gt;pI&amp;lt;/tt&amp;gt; - указатель оригинальную реализацию &lt;/ins&gt;интерфейса &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;AnotherAdapterRef::interface_type&amp;lt;/source&amp;gt;, &amp;lt;tt&amp;gt;pCopy&amp;lt;/tt&amp;gt; - указатель, на выходе функции &amp;lt;tt&amp;gt;Clone&amp;lt;/tt&amp;gt; принимающий адрес копии оригинальной реализации.}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{function template paramlist add|AnotherAdapterOwn|Тип адаптера с владением&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;участвующего в качестве параметра &lt;/ins&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;param|ownRight&lt;/ins&gt;}} &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;в конструкторах 5 и 6&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Значение &lt;/ins&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;std::&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;is_convertible_v&lt;/ins&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;typename AnotherAdapterOwn::interface_type*, const IArbitrarilyAccessedDataStorageInput*&amp;gt;&amp;lt;/source&amp;gt; должно быть {{cpp_true}}, адаптер - [[владеющий адаптер|владеющим]]. Для копирования перегрузкой 5 интерфейс &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&lt;/ins&gt;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterOwn::interface_type&lt;/ins&gt;&amp;lt;/source&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;также &lt;/ins&gt;должен &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;поддерживать вызов &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;pI-&amp;gt;Clone(&amp;amp;pCopy)&amp;lt;/source&amp;gt;, где &amp;lt;tt&amp;gt;pI&amp;lt;/tt&amp;gt; - &lt;/ins&gt;указатель &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;оригинальную реализацию интерфейса &lt;/ins&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AnotherAdapterRef::interface_type&lt;/ins&gt;&amp;lt;/source&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &amp;lt;tt&amp;gt;pCopy&amp;lt;/tt&amp;gt; - указатель, на выходе функции &amp;lt;tt&amp;gt;Clone&amp;lt;/tt&amp;gt; принимающий адрес копии оригинальной реализации&lt;/ins&gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist end}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function template paramlist end}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist begin}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist begin}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{function_paramlist add|pArbitrarilyAccessedDataStorage|Указатель на адаптируемую реализацию накопителя данных [[IArbitrarilyAccessedDataStorageInput]].|paramdir=[in]}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist add|right|Адаптер, передающий владение своим интерфейсным указателем, если он есть, создаваемому экземпляру [[ArbitrarilyAccessedDataStorageInputOwn]], как если бы был выполнен вызов &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;right.release_ownership()&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist add|right|Адаптер, передающий владение своим интерфейсным указателем, если он есть, создаваемому экземпляру [[ArbitrarilyAccessedDataStorageInputOwn]], как если бы был выполнен вызов &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;right.release_ownership()&amp;lt;/source&amp;gt;.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{function_paramlist add|refRight|[[Ссылочный адаптер]], реализация интерфейса которого клонируется с целью создания копии, управляемой создаваемым адаптером, как если бы было выполнено создание адаптера путем вызова перегрузки 2 с аргументом &amp;lt;tt&gt;pCopy&amp;lt;/tt&gt;, получаемым в результате вызова &amp;lt;source lang=&quot;cpp&quot; inline&gt;refRight.get_interface()-&gt;Clone(&amp;amp;pCopy)&amp;lt;/source&gt;.}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{function_paramlist add|ownRight|[[Владеющий адаптер]], реализация интерфейса которого клонируется или переносится на создаваемый адаптер. Копирование выполняется перегрузкой 5, как если бы было выполнено создание адаптера путем вызова перегрузки 2 с аргументом &amp;lt;tt&gt;pCopy&amp;lt;/tt&gt;, получаемым в результате вызова &amp;lt;source lang=&quot;cpp&quot; inline&gt;ownRight.get_interface()-&gt;Clone(&amp;amp;pCopy)&amp;lt;/source&gt;. Перемещение выполняется перегрузкой 6, как если бы было выполнено создание адаптера путем вызова перегрузки 2 с аргументом &amp;lt;source lang=&quot;cpp&quot; inline&gt;ownRight.release_ownership()&amp;lt;/source&gt;.}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist end}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_paramlist end}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_end}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function_end}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-8976:rev-9022 --&gt;
&lt;/table&gt;</summary>
		<author><name>Андрей Чусов</name></author>
	</entry>
	<entry>
		<id>http://51.250.0.107/w/index.php?title=ArbitrarilyAccessedDataStorageInputOwn::operator%3D&amp;diff=8976&amp;oldid=prev</id>
		<title>Андрей Чусов: Новая страница: «{{function_begin|ArbitrarilyAccessedDataStorageInputOwn&amp; operator{{=}}(ArbitrarilyAccessedDataStorageInputOwn&amp;&amp; right); //1 template &lt;class RightAdapterType&gt; Arbi…»</title>
		<link rel="alternate" type="text/html" href="http://51.250.0.107/w/index.php?title=ArbitrarilyAccessedDataStorageInputOwn::operator%3D&amp;diff=8976&amp;oldid=prev"/>
		<updated>2019-08-15T05:47:43Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{function_begin|ArbitrarilyAccessedDataStorageInputOwn&amp;amp; operator{{=}}(ArbitrarilyAccessedDataStorageInputOwn&amp;amp;&amp;amp; right); //1 template &amp;lt;class RightAdapterType&amp;gt; Arbi…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{function_begin|ArbitrarilyAccessedDataStorageInputOwn&amp;amp; operator{{=}}(ArbitrarilyAccessedDataStorageInputOwn&amp;amp;&amp;amp; right); //1&lt;br /&gt;
template &amp;lt;class RightAdapterType&amp;gt;&lt;br /&gt;
ArbitrarilyAccessedDataStorageInputOwn&amp;amp; operator{{=}}(RightAdapterType&amp;amp;&amp;amp; right); //2&lt;br /&gt;
|{{ArbitrarilyAccessedDataStorageInputOwn::operator{{=}} brief}}&lt;br /&gt;
# Оператор присваивания с перемещением, который переносит владение реализацией накопителя данных адаптеру {{cpp_this}}. Присваивание адаптеру разрешено, только если он не был до этого проинициализирован действительным адресом реализации накопителя или был сброшен с помощью [[ArbitrarilyAccessedDataStorageInputOwn::release_ownership]] или [[ArbitrarilyAccessedDataStorageInputOwn::reset_ownership]] без параметров. В противном случае генерируются исключения - [https://www.chusov.org/doxygen/struct_chusov_1_1_exceptions_1_1_unsupported_call_exception.html Chusov::Exceptions::UnsupportedCallException], если {{param|right}} не содержит реализации [[IArbitrarilyAccessedDataStorageInput]], и [https://www.chusov.org/doxygen/struct_chusov_1_1_exceptions_1_1_invalid_parameter_exception.html Chusov::Exceptions::InvalidParameterException] - в противном случае.&lt;br /&gt;
# Аналогично, но с приведением типа указателя на реализацию с &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;typename std::remove_reference_t&amp;lt;RightAdapterType&amp;gt;::interface_type*&amp;lt;/source&amp;gt; к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;. Данная перегрузка участвует в процедуре разрешения перегрузок, только если &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;RightAdapterType&amp;amp;&amp;amp;&amp;lt;/source&amp;gt; является rvalue-ссылкой, тип &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;std::decay_t&amp;lt;RightAdapterType&amp;gt;&amp;lt;/source&amp;gt; является [[владеющий адаптер|адаптером с владением]] с подтипом &amp;lt;tt&amp;gt;interface_type&amp;lt;/tt&amp;gt;, указатель на который неявно приводим к &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;.}}&lt;br /&gt;
{{function template paramlist begin}}&lt;br /&gt;
{{function template paramlist add|RightAdapterType|Тип адаптера с владением реализацией интерфейса [[IArbitrarilyAccessedDataStorageInput]] (или неявно приводимого к нему интерфейса), которая передается экземпляру {{cpp_this}} адаптера перегрузкой 2. Тип &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;std::decay_t&amp;lt;RightAdapterType&amp;gt;&amp;lt;/source&amp;gt; должен задавать адаптер с владением через указатель, приводимый к типу &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;IArbitrarilyAccessedDataStorageInput*&amp;lt;/source&amp;gt;.}}&lt;br /&gt;
{{function template paramlist end}}&lt;br /&gt;
{{function_paramlist begin}}&lt;br /&gt;
{{function_paramlist add|right|Адаптер, передающий владение своим интерфейсным указателем, если он есть, создаваемому экземпляру [[ArbitrarilyAccessedDataStorageInputOwn]], как если бы был выполнен вызов &amp;lt;source lang=&amp;quot;cpp&amp;quot; inline&amp;gt;right.release_ownership()&amp;lt;/source&amp;gt;.}}&lt;br /&gt;
{{function_paramlist end}}&lt;br /&gt;
{{function_end}}&lt;/div&gt;</summary>
		<author><name>Андрей Чусов</name></author>
	</entry>
</feed>