31 #ifndef LEDGER_CORE_CALLBACK_TRAITS_HPP 32 #define LEDGER_CORE_CALLBACK_TRAITS_HPP 35 #include <type_traits> 40 template<
typename,
typename T>
43 std::integral_constant<T, false>::value,
44 "Second template parameter needs to be of function type.");
49 template<
typename C,
typename Ret,
typename... Args>
53 static constexpr
auto check(T*)
56 decltype( std::declval<T>().onCallback( std::declval<Args>()... ) ),
61 static constexpr std::false_type check(...) {
return std::false_type();};
63 typedef decltype(check<C>(0)) type;
66 static constexpr
bool value = type::value;
71 #endif //LEDGER_CORE_CALLBACK_TRAITS_HPP Definition: callback_traits.hpp:41
Definition: Account.cpp:8