Архитектурная акустика/Реализация/IteratorAdapterConditional::IteratorAdapterConditional: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
(Новая страница: «{{function_begin |IteratorAdapterConditional() {{=}} default; //1 template <class predicate_params_as_tuple_t, class iterator_predicate_params_as_tuple_t> Iterat…»)
 
 
Строка 1: Строка 1:
{{function_begin |IteratorAdapterConditional() {{=}} default; //1
{{function_begin |IteratorAdapterConditional() {{=}} default; //1
IteratorAdapterConditional(const IteratorAdapterConditional&) {{=}} default; //2
IteratorAdapterConditional(IteratorAdapterConditional&&) {{=}} default; //3


template <class predicate_params_as_tuple_t, class iterator_predicate_params_as_tuple_t>
template <class predicate_params_as_tuple_t, class iterator_predicate_params_as_tuple_t>
Строка 5: Строка 7:
iterator it,
iterator it,
predicate_params_as_tuple_t&& tuple_of_predicate_params,  
predicate_params_as_tuple_t&& tuple_of_predicate_params,  
iterator_predicate_params_as_tuple_t&& tuple_of_iterator_predicate_params); //2
iterator_predicate_params_as_tuple_t&& tuple_of_iterator_predicate_params); //4
template <class predicate_params_as_tuple_t, class iterator_predicate_params_as_tuple_t>
template <class predicate_params_as_tuple_t, class iterator_predicate_params_as_tuple_t>
IteratorAdapterConditional(
IteratorAdapterConditional(
predicate_params_as_tuple_t&& tuple_of_predicate_params,  
predicate_params_as_tuple_t&& tuple_of_predicate_params,  
iterator_predicate_params_as_tuple_t&& tuple_of_iterator_predicate_params); //3
iterator_predicate_params_as_tuple_t&& tuple_of_iterator_predicate_params); //5


template <class iterator_predicate_params_t>
template <class iterator_predicate_params_t>
IteratorAdapterConditional(iterator it, iterator_predicate_params_t&& iterator_predicate_params); //4
IteratorAdapterConditional(iterator it, iterator_predicate_params_t&& iterator_predicate_params); //6


template <class iterator_predicate_params_t>
template <class iterator_predicate_params_t>
IteratorAdapterConditional(iterator_predicate_params_t&& iterator_predicate_params); //5
IteratorAdapterConditional(iterator_predicate_params_t&& iterator_predicate_params); //7


IteratorAdapterConditional(iterator it); //6
IteratorAdapterConditional(iterator it); //8


template <class _It2, class _Pred2, class _IterPred2>
template <class _It2, class _Pred2, class _IterPred2>
IteratorAdapterConditional(const IteratorAdapterConditional<_It2, _Pred2, _IterPred2>& refRight); //7
IteratorAdapterConditional(const IteratorAdapterConditional<_It2, _Pred2, _IterPred2>& refRight); //9
|{{Архитектурная акустика/Реализация/IteratorAdapterConditional::IteratorAdapterConditional brief}}
|{{Архитектурная акустика/Реализация/IteratorAdapterConditional::IteratorAdapterConditional brief}}
# Конструктор по умолчанию.
# Конструктор по умолчанию.
# Конструктор копирования.
# Конструктор перемещения.
# Конструктор, задающий состояние создаваемого итератора {{arch_ac_ref|IteratorAdapterConditional}} - начальную позицию {{arch_ac_ref|IteratorAdapterConditional|IteratorAdapterConditional::iterator}}, предикат необходимости перехода и предикат возможности перехода. Предикаты задаются в конструкторе специализациями [http://en.cppreference.com/w/cpp/utility/tuple std::tuple]. Например, параметры могут быть переданы с помощью [http://en.cppreference.com/w/cpp/utility/tuple/forward_as_tuple std::forward_as_tuple].
# Конструктор, задающий состояние создаваемого итератора {{arch_ac_ref|IteratorAdapterConditional}} - начальную позицию {{arch_ac_ref|IteratorAdapterConditional|IteratorAdapterConditional::iterator}}, предикат необходимости перехода и предикат возможности перехода. Предикаты задаются в конструкторе специализациями [http://en.cppreference.com/w/cpp/utility/tuple std::tuple]. Например, параметры могут быть переданы с помощью [http://en.cppreference.com/w/cpp/utility/tuple/forward_as_tuple std::forward_as_tuple].
# Конструктор, который задает предикаты (также, с помощью [http://en.cppreference.com/w/cpp/utility/tuple std::tuple]), но позиция итератора не задается. Итератор, созданный с помощью данного конструктора, не может быть использован до присваивания ему итератора с действительной позицией. Используется в случаях, когда предикаты не удовлетворяют требованиям {{cpp_concept|DefaultConstructible}}.
# Конструктор, который задает предикаты (также, с помощью [http://en.cppreference.com/w/cpp/utility/tuple std::tuple]), но позиция итератора не задается. Итератор, созданный с помощью данного конструктора, не может быть использован до присваивания ему итератора с действительной позицией. Используется в случаях, когда предикаты не удовлетворяют требованиям {{cpp_concept|DefaultConstructible}}.
Строка 34: Строка 38:
{{function template paramlist add|iterator_predicate_params_as_tuple_t|Тип экземпляра специализации [http://en.cppreference.com/w/cpp/utility/tuple std::tuple], переносящего аргументы для создания предиката возможности перехода.}}
{{function template paramlist add|iterator_predicate_params_as_tuple_t|Тип экземпляра специализации [http://en.cppreference.com/w/cpp/utility/tuple std::tuple], переносящего аргументы для создания предиката возможности перехода.}}
{{function template paramlist add|iterator_predicate_params_t|Тип аргумента, на основе которого создается предикат возможности перехода.}}
{{function template paramlist add|iterator_predicate_params_t|Тип аргумента, на основе которого создается предикат возможности перехода.}}
{{function template paramlist add|_It2|Тип итератора, который неявно преобразуется к типу {{arch_ac_ref|IteratorAdapterConditional|IteratorAdapterConditional::iterator}} перегрузкой 7.}}
{{function template paramlist add|_It2|Тип итератора, который неявно преобразуется к типу {{arch_ac_ref|IteratorAdapterConditional|IteratorAdapterConditional::iterator}} перегрузкой 9.}}
{{function template paramlist add|_Pred2|Тип предиката, который неявно преобразуется к типу {{arch_ac_ref|IteratorAdapterConditional|IteratorAdapterConditional::predicate}} перегрузкой 7.}}
{{function template paramlist add|_Pred2|Тип предиката, который неявно преобразуется к типу {{arch_ac_ref|IteratorAdapterConditional|IteratorAdapterConditional::predicate}} перегрузкой 9.}}
{{function template paramlist add|_IterPred2|Тип предиката, который неявно преобразуется к типу {{arch_ac_ref|IteratorAdapterConditional|IteratorAdapterConditional::iterator_predicate}} перегрузкой 7.}}
{{function template paramlist add|_IterPred2|Тип предиката, который неявно преобразуется к типу {{arch_ac_ref|IteratorAdapterConditional|IteratorAdapterConditional::iterator_predicate}} перегрузкой 9.}}
{{function template paramlist end}}
{{function template paramlist end}}
{{function_paramlist begin}}
{{function_paramlist begin}}
Строка 46: Строка 50:
{{function_paramlist end}}
{{function_paramlist end}}
{{function_end}}
{{function_end}}
Также, неявно определены конструкторы копирования и присвяивания.

Текущая версия на 17:13, 27 января 2018

IteratorAdapterConditional() = default; //1
IteratorAdapterConditional(const IteratorAdapterConditional&) = default; //2
IteratorAdapterConditional(IteratorAdapterConditional&&) = default; //3

template <class predicate_params_as_tuple_t, class iterator_predicate_params_as_tuple_t>
IteratorAdapterConditional(
	iterator it,
	predicate_params_as_tuple_t&& tuple_of_predicate_params, 
	iterator_predicate_params_as_tuple_t&& tuple_of_iterator_predicate_params); //4
		
template <class predicate_params_as_tuple_t, class iterator_predicate_params_as_tuple_t>
IteratorAdapterConditional(
	predicate_params_as_tuple_t&& tuple_of_predicate_params, 
	iterator_predicate_params_as_tuple_t&& tuple_of_iterator_predicate_params); //5

template <class iterator_predicate_params_t>
IteratorAdapterConditional(iterator it, iterator_predicate_params_t&& iterator_predicate_params); //6

template <class iterator_predicate_params_t>
IteratorAdapterConditional(iterator_predicate_params_t&& iterator_predicate_params); //7

IteratorAdapterConditional(iterator it); //8

template <class _It2, class _Pred2, class _IterPred2>
IteratorAdapterConditional(const IteratorAdapterConditional<_It2, _Pred2, _IterPred2>& refRight); //9

Конструкторы класса IteratorAdapterConditional.

  1. Конструктор по умолчанию.
  2. Конструктор копирования.
  3. Конструктор перемещения.
  4. Конструктор, задающий состояние создаваемого итератора IteratorAdapterConditional - начальную позицию IteratorAdapterConditional::iterator, предикат необходимости перехода и предикат возможности перехода. Предикаты задаются в конструкторе специализациями std::tuple. Например, параметры могут быть переданы с помощью std::forward_as_tuple.
  5. Конструктор, который задает предикаты (также, с помощью std::tuple), но позиция итератора не задается. Итератор, созданный с помощью данного конструктора, не может быть использован до присваивания ему итератора с действительной позицией. Используется в случаях, когда предикаты не удовлетворяют требованиям DefaultConstructible.
  6. Конструктор, создающий итератор в заданной позиции и с заданным предикатом возможности перехода к следующему элементу, и использующий инициализированный по умолчанию предикат необходимости перехода. Перегрузка определена только, если предикат необходимости перехода удовлетворяет DefaultConstructible.
  7. Аналогично, но начальная позиция итератора не задается.
  8. Конструктор, создающий итератор IteratorAdapterConditional с заданной позицией и со сконструированными по умолчанию предикатами. Перегрузка определена только, если оба предиката удовлетворяют DefaultConstructible.
  9. Коструктор преобразования заданной специализации IteratorAdapterConditional в специализацию *this. Конструктор определен только, если специализирующие адаптер типы аргумента (итератор и оба предиката) неявно преобразуемы в соответствующие типы конструируемого адаптера.
Параметры шаблона
predicate_params_as_tuple_tТип экземпляра специализации std::tuple, переносящего аргументы для создания предиката необходимости перехода.
iterator_predicate_params_as_tuple_tТип экземпляра специализации std::tuple, переносящего аргументы для создания предиката возможности перехода.
iterator_predicate_params_tТип аргумента, на основе которого создается предикат возможности перехода.
_It2Тип итератора, который неявно преобразуется к типу IteratorAdapterConditional::iterator перегрузкой 9.
_Pred2Тип предиката, который неявно преобразуется к типу IteratorAdapterConditional::predicate перегрузкой 9.
_IterPred2Тип предиката, который неявно преобразуется к типу IteratorAdapterConditional::iterator_predicate перегрузкой 9.
Параметры
itАдаптируемый итератор. Задает начальную позицию адаптера.
tuple_of_predicate_paramsЭкземпляр std::tuple, который переносит аргументы для создания предиката необходимости перехода. Может быть использована функция std::forward_as_tuple.
tuple_of_iterator_predicate_paramsЭкземпляр std::tuple, который переносит аргументы для создания предиката возможности перехода. Может быть использована функция std::forward_as_tuple.
tuple_of_iterator_predicate_paramsПараметр, используемый при создании предиката возможности перехода.
refRightЭкземпляр другой специализации шаблона IteratorAdapterConditional, состояние которого преобразуется и копируется в создаваемый итератор.