Explicit conversion sequence::convert: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
(Новая страница: «{{function_begin |template <class U> static constexpr sequence_element<0> convert(U&& arg);|{{interface_implementation_base::convert brief}}}} {{function temp…»)
 
 
Строка 1: Строка 1:
{{function_begin |template <class U>
{{function_begin |template <class U>
     static constexpr sequence_element<0> convert(U&& arg);|{{interface_implementation_base::convert brief}}}}
     static constexpr sequence_element<0> convert(U&& arg);|{{explicit_conversion_sequence::convert brief}}}}
{{function template paramlist begin}}
{{function template paramlist begin}}
{{function template paramlist add|U|Тип входного параметра, преобразуемого методом.}}
{{function template paramlist add|U|Тип входного параметра, преобразуемого методом.}}

Текущая версия на 19:02, 10 декабря 2017

template <class U>
    static constexpr sequence_element<0> convert(U&& arg);

Осуществляет последовательное явное преобразование типов для своего аргумента в соответствии с параметрами шаблона explicit_conversion_sequence.

Параметры шаблона
UТип входного параметра, преобразуемого методом.
Параметры
argУниверсальная ссылка на входной объект, преобразуемый методом.
Возвращаемое значение:
Результат явного преобразования.

Пусть задана специализация typedef explicit_conversion_sequence<T1, T2, ..., TN> instantiation_type;, определенная для некоторых типов T1, T2, ...TN, а также некоторый объект x. Тогда применение метода convert над этим объектом:

instantiation_type::convert(x);

будет эквивалентно последовательному преобразованию:

T1(T2(...TN(x)...));