33//helper struct to tell whether type is any of given types (U, Rest...)
34//recurrence case when at least one type U is present -> returns std::true_type if std::same<T, U>::value is true, otherwise call is_any_of<T, Rest...> recurrently
35template <class T, class U, class... Rest>
36struct is_any_of<T, U, Rest...> : public std::conditional<std::is_same<T, U>::value, std::true_type, is_any_of<T, Rest...>>::type {};