template <class...> struct CollectVariadicContext;
template <class> struct CollectContext;
-template<typename F, typename... Args>
+template <typename F, typename... Args>
using resultOf = decltype(std::declval<F>()(std::declval<Args>()...));
template <typename...>
using Result = resultOf<F, Args...>;
};
-template<typename F, typename... Args>
+template <typename F, typename... Args>
struct callableWith {
- template<typename T,
- typename = detail::resultOf<T, Args...>>
+ template <typename T, typename = detail::resultOf<T, Args...>>
static constexpr std::true_type
check(std::nullptr_t) { return std::true_type{}; }
- template<typename>
+ template <typename>
static constexpr std::false_type
check(...) { return std::false_type{}; }
static constexpr bool value = type::value;
};
-template<typename T, typename F>
+template <typename T, typename F>
struct callableResult {
typedef typename std::conditional<
callableWith<F>::value,