26template<
typename T,
typename B>
27struct is_derived_from: std::integral_constant<bool, std::is_base_of<B, T>::value> {};
39template<
typename Base,
typename... Derived>
51template<
typename Base>
65template<
typename Base,
typename First,
typename... Rest>
67 std::integral_constant<bool,
68 std::is_base_of<Base, First>::value
69 && all_derived<Base, Rest...>::value> {};
95template <
typename... Args>
96struct is_tuple<std::tuple<Args...>> : std::true_type {};
104template <std::size_t... I>
113template <std::size_t N, std::size_t... I>
121template <std::size_t... I>
Trait to check if all types in a pack are derived from a base type.
Definition TypeTraits.hpp:40
Base Type to represent a sequence of compile time indice.
Definition TypeTraits.hpp:105
Trait to check if a type T derives from a base B.
Definition TypeTraits.hpp:27
Detect whether a type is a std::tuple or not.
Definition TypeTraits.hpp:82
index_sequence< I... > type
Definition TypeTraits.hpp:123
recursive template to generate the sequence
Definition TypeTraits.hpp:114