<?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=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%BD%D0%B0%D1%8F_%D0%B0%D0%BA%D1%83%D1%81%D1%82%D0%B8%D0%BA%D0%B0%2F%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%2Fadapt_iterator_range</id>
	<title>Архитектурная акустика/Реализация/adapt iterator range - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://51.250.0.107/w/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%BD%D0%B0%D1%8F_%D0%B0%D0%BA%D1%83%D1%81%D1%82%D0%B8%D0%BA%D0%B0%2F%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%2Fadapt_iterator_range"/>
	<link rel="alternate" type="text/html" href="http://51.250.0.107/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%BD%D0%B0%D1%8F_%D0%B0%D0%BA%D1%83%D1%81%D1%82%D0%B8%D0%BA%D0%B0/%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F/adapt_iterator_range&amp;action=history"/>
	<updated>2026-04-30T06:07:42Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://51.250.0.107/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%BD%D0%B0%D1%8F_%D0%B0%D0%BA%D1%83%D1%81%D1%82%D0%B8%D0%BA%D0%B0/%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F/adapt_iterator_range&amp;diff=6730&amp;oldid=prev</id>
		<title>Андрей Чусов: Новая страница: «{{DISPLAYTITLE:Архитектурная акустика/Реализация/adapt_iterator_range}} {{function_begin |template &lt;template &lt;class ...&gt; class _Ada…»</title>
		<link rel="alternate" type="text/html" href="http://51.250.0.107/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%BD%D0%B0%D1%8F_%D0%B0%D0%BA%D1%83%D1%81%D1%82%D0%B8%D0%BA%D0%B0/%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F/adapt_iterator_range&amp;diff=6730&amp;oldid=prev"/>
		<updated>2018-01-08T17:22:45Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{DISPLAYTITLE:Архитектурная акустика/Реализация/adapt_iterator_range}} {{function_begin |template &amp;lt;template &amp;lt;class ...&amp;gt; class _Ada…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:Архитектурная акустика/Реализация/adapt_iterator_range}}&lt;br /&gt;
{{function_begin |template &amp;lt;template &amp;lt;class ...&amp;gt; class _Adapter, class _BeginIteratorPosType, class _EndIteratorPosType, class ... _AdaptationParametersToDistribute&amp;gt;&lt;br /&gt;
auto adapt_iterator_range(_BeginIteratorPosType&amp;amp;&amp;amp; itBegin, _EndIteratorPosType&amp;amp;&amp;amp; itEnd, _AdaptationParametersToDistribute&amp;amp;&amp;amp; ... generic_adapter_params) -&amp;gt; /*См. описание*/ //1&lt;br /&gt;
&lt;br /&gt;
template &amp;lt;template &amp;lt;class ...&amp;gt; class _Adapter, class _BaseRange, class ... _AdaptationParametersToDistribute&amp;gt;&lt;br /&gt;
auto adapt_iterator_range(_BaseRange&amp;amp;&amp;amp; base_range, _AdaptationParametersToDistribute&amp;amp;&amp;amp; ... generic_adapter_params) -&amp;gt; /*См. описание*/ //2|{{Архитектурная акустика/Реализация/adapt_iterator_range brief}}}}&lt;br /&gt;
{{function template paramlist begin}}&lt;br /&gt;
{{function template paramlist add|_Adapter|Шаблон, который задает используемый адаптер. Специализируется частью параметров &amp;lt;tt&amp;gt;_AdaptationParametersToDistribute...&amp;lt;/tt&amp;gt;, в результате задавая тип создаваемого адаптера.}}&lt;br /&gt;
{{function template paramlist add|_BeginIteratorPosType|Тип адаптируемого итератора, задающего начальную позицию на множестве перечисляемых элементов.}}&lt;br /&gt;
{{function template paramlist add|_EndIteratorPosType|Тип адаптируемого итератора, задающего первый (псевдо-) элемент за последним элементом из множества перечисляемого итераторами.}}&lt;br /&gt;
{{function template paramlist add|_BaseRange|Тип объекта, реализующего методы &amp;lt;tt&amp;gt;begin&amp;lt;/tt&amp;gt; и &amp;lt;tt&amp;gt;end&amp;lt;/tt&amp;gt; (без параметров), которые, соответственно, возвращают начальный и конечный итераторы, определяющие границы множества.}}&lt;br /&gt;
{{function template paramlist add|_AdaptationParametersToDistribute...|Набор вычисляемых дедукцией типов аргументов, поданных в качестве &amp;lt;tt&amp;gt;generic_adapter_params...&amp;lt;/tt&amp;gt; на вход функции. Используются для инициализации обоих итераторов.}}&lt;br /&gt;
{{function template paramlist end}}&lt;br /&gt;
{{function paramlist begin}}&lt;br /&gt;
{{function paramlist add|itBegin|Итератор, задающий первый элемент множества.}}&lt;br /&gt;
{{function paramlist add|itEnd|Итератор, задающий первый (псевдо-) элемент за последним элементом множества.}}&lt;br /&gt;
{{function paramlist add|base_range|Объект, задающий аналогичную пару итераторов методами &amp;lt;tt&amp;gt;begin&amp;lt;/tt&amp;gt; и &amp;lt;tt&amp;gt;end&amp;lt;/tt&amp;gt; без параметров.}}&lt;br /&gt;
{{function paramlist add|...generic_adapter_params|Набор параметров в дополнение к итераторам для инициализации создаваемых итераторов-адаптеров, задающих возвращаемый диапазон элементов.}}&lt;br /&gt;
{{function paramlist end}}&lt;br /&gt;
{{function return_value|Созданный объект [https://www.chusov.org/doxygen/struct_chusov_1_1_memory_1_1iterator__range.html Chusov::Memory::iterator_range], специализированный для итераторов-адаптеров.}}&lt;br /&gt;
{{function_end}}&lt;br /&gt;
Вызов&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
adapt_iterator_range&amp;lt;IteratorAdapter&amp;gt;(vector, param_1, param_2);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Эквивалентен вызову&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
Chusov::Memory::make_iterator_range(&lt;br /&gt;
    make_iterator_adapter(vector.begin(), param_1, param_2),&lt;br /&gt;
    make_iterator_adapter(vector.end(), param_1, param_2)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{example_begin}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
auto itChain = adapt_iterator_range&amp;lt;IteratorAdapterConditional&amp;gt;(&lt;br /&gt;
    adapt_iterator_range&amp;lt;IteratorAdapterForStep&amp;gt;(&lt;br /&gt;
        i,&lt;br /&gt;
        std::thread::hardware_concurrency(),&lt;br /&gt;
        adapt_iterator_range&amp;lt;IteratorAdapter2D&amp;gt;(container)&lt;br /&gt;
        ),&lt;br /&gt;
    [](IteratorAdapterForStep&amp;lt;IteratorAdapter2D&amp;lt;container::iterator&amp;gt;&amp;gt; _it) -&amp;gt; bool {return (*_it &amp;amp; 1) == 0; }, &lt;br /&gt;
    [&amp;amp;cont](auto _it) -&amp;gt; bool {return _it.adaptation_base() != cont.crend(); }&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{example_end}}&lt;/div&gt;</summary>
		<author><name>Андрей Чусов</name></author>
	</entry>
</feed>