13 #ifndef __STOUT_RESULT_OF_HPP__ 14 #define __STOUT_RESULT_OF_HPP__ 16 #include <type_traits> 31 struct Prefer : LessPrefer {};
44 template <
typename F,
typename... Args>
45 auto result_of_test(Prefer)
46 -> decltype(std::invoke(std::declval<F>(), std::declval<Args>()...));
50 template <
typename,
typename...>
51 Fail result_of_test(LessPrefer);
56 struct result_of_impl {
using type = T; };
62 struct result_of_impl<Fail> {};
72 template <
typename F,
typename... Args>
73 struct result_of<F(Args...)>
74 : result_of_impl<decltype(result_of_test<F, Args...>(Prefer()))> {};
78 using internal::result_of;
82 #endif // __STOUT_RESULT_OF_HPP__ Definition: attributes.hpp:24
Try< uint32_t > type(const std::string &path)