19 #ifndef SCARAB_UNIQUE_TYPELIST_HH_ 20 #define SCARAB_UNIQUE_TYPELIST_HH_ 22 #include <type_traits> 27 template<
typename T,
typename FirstType,
typename... OtherTypes >
30 template<
typename T,
typename FirstType >
33 static const bool value = ! std::is_same< T, FirstType >::value;
36 template<
typename T,
typename FirstType,
typename... OtherTypes >
42 template<
typename T,
typename FirstType,
typename... OtherTypes >
43 struct is_unique : std::integral_constant< bool, is_unique_impl< T, FirstType, OtherTypes... >::value >
47 template<
typename... Types >
51 template<
typename T,
typename... ListItems >
54 template<
typename T >
60 template<
typename T,
typename... ListItems >
67 template<
typename T,
typename List >
typename unique_append_impl< T, List >::type unique_append