2016-06-01 18 views

risposta

10

Scrivi un tratto:

template<class> 
struct is_A : std::false_type {}; 

template<std::uint32_t X, int Y, int Z> 
struct is_A<A<X,Y,Z>> : std::true_type {}; 

quindi utilizzarlo:

template <typename... Ts> 
struct X 
{ 
    constexpr bool match = std::disjunction_v<is_A<Ts>...>; 
}; 

Vedi cppreference per l'implementazione di std::disjunction in C++ 11.

+2

Grazie per aver introdotto std :: disgiunzione :) – Arunmu

Problemi correlati