Implicit conversion sequence::convert

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
template <class U>
static constexpr sequence_element<0> convert(U&& arg);

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

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

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

instantiation_type::convert(x);

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

implicit_cast<T1>(implicit_cast<T2>(...implicit_cast<TN>(x)...));

где функция implicit_cast определена как

template <class T, class U>
constexpr T implicit_cast(U&& arg)
{
    return std::forward<U>(arg);
}