Enable If

template<class T, class ...Ts>
constexpr bool core::mp::enable_if_all_v = std::conjunction_v<std::is_same<T, std::decay_t<Ts>>...>

Evaluates to true iff all types Ts.. are the same as type T; otherwise, false.

Template Parameters:
  • T – The type to compare against.

  • Ts – Compare each of these types against T.

template<class T, class ...Ts>
constexpr bool core::mp::enable_if_any_v = std::disjunction_v<std::is_same<T, std::decay_t<Ts>>...>

Evaluates to true iff any types Ts.. are the same as type T; otherwise, false.

Template Parameters:
  • T – The type to compare against.

  • Ts – Compare each of these types against T.

template<class T, class ...Ts>
constexpr bool core::mp::enable_if_none_v = !std::disjunction_v<std::is_same<T, std::decay_t<Ts>>...>

Evaluates to true iff no types Ts.. are the same as type T; otherwise, false.

Template Parameters:
  • T – The type to compare against.

  • Ts – Compare each of these types against T.