23template<
typename T,
typename B>
24struct is_derived_from: std::integral_constant<bool, std::is_base_of<B, T>::value> {};
36template<
typename Base,
typename... Derived>
48template<
typename Base>
62template<
typename Base,
typename First,
typename... Rest>
64 std::integral_constant<bool,
65 std::is_base_of<Base, First>::value
66 && all_derived<Base, Rest...>::value> {};
92template <
typename... Args>
93struct is_tuple<std::tuple<Args...>> : std::true_type {};
101template <std::size_t... I>
110template <std::size_t N, std::size_t... I>
118template <std::size_t... I>
Trait to check if all types in a pack are derived from a base type.
Definition TypeTraits.hpp:37
Base Type to represent a sequence of compile time indice.
Definition TypeTraits.hpp:102
Trait to check if a type T derives from a base B.
Definition TypeTraits.hpp:24
Detect whether a type is a std::tuple or not.
Definition TypeTraits.hpp:79
index_sequence< I... > type
Definition TypeTraits.hpp:120
recursive template to generate the sequence
Definition TypeTraits.hpp:111