Interface implementation base::interface implementation base

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
interface_implementation_base() = default; // 1
template <class DisposalPolicy, class RefCtrPolicy, class ConversionPolicy,
    class = typename std::enable_if<(
        std::is_constructible<interface_disposal_policy, DisposalPolicy&&>::value && 
        std::is_constructible<interface_ref_ctr_policy, RefCtrPolicy&&>::value &&
        std::is_constructible<interface_conversion_policy, ConversionPolicy&&>::value
    )>::type>
interface_implementation_base(DisposalPolicy&& refDisposalPolicy, RefCtrPolicy&& refRefCtrPolicy, ConversionPolicy&& refConversionPolicy); //2

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

  1. Конструктор по умолчанию.
  2. Конструктор на основе заданных входных параметров, на основе которых конструируются объекты политик класса interface_implementation_base.
Параметры шаблона
DisposalPolicyТип параметра, на основе которого создается объект типа interface_disposal_policy класса interface_implementation_base.
RefCtrPolicyТип параметра, на основе которого создается объект типа interface_ref_ctr_policy класса interface_implementation_base.
ConversionPolicyТип параметра, на основе которого создается объект типа interface_conversion_policy класса interface_implementation_base.
Параметры
refDisposalPolicyПараметр политики interface_disposal_policy.
refRefCtrPolicyПараметр политики interface_ref_ctr_policy.
refConversionPolicyПараметр политики interface_conversion_policy.

Параметрами перегрузки 2 являются универсальные ссылки, которые перенаправляются конструкторам политик с помощью std::forward. Если типа политик MoveConstructible, и создание каждой требует множества параметров, можно использовать данный конструктор с rvalue политиками.