decltype(invoke(std::declval<F>(), std::declval<Args>()...));
template <typename F, typename... Args>
decltype(invoke(std::declval<F>(), std::declval<Args>()...));
template <typename F, typename... Args>
-using invoke_nothrow_ = std::integral_constant<
- bool,
- noexcept(invoke(std::declval<F>(), std::declval<Args>()...))>;
+struct invoke_nothrow_
+ : std::integral_constant<
+ bool,
+ noexcept(invoke(std::declval<F>(), std::declval<Args>()...))> {};
// from: http://en.cppreference.com/w/cpp/types/result_of, CC-BY-SA
// from: http://en.cppreference.com/w/cpp/types/result_of, CC-BY-SA