felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9be8f029af6383f21d4d6b956afc29f4b0e244d3
commit 9be8f029af6383f21d4d6b956afc29f4b0e244d3 Author: Felipe Magno de Almeida <[email protected]> Date: Mon Jun 20 19:35:50 2016 -0300 eolian-cxx: Remove Eina_Bool from event function wrapper --- src/bindings/cxx/eo_cxx/eo_event.hh | 42 +++++-------------------------------- 1 file changed, 5 insertions(+), 37 deletions(-) diff --git a/src/bindings/cxx/eo_cxx/eo_event.hh b/src/bindings/cxx/eo_cxx/eo_event.hh index 2120121..a66a043 100644 --- a/src/bindings/cxx/eo_cxx/eo_event.hh +++ b/src/bindings/cxx/eo_cxx/eo_event.hh @@ -124,55 +124,23 @@ signal_connection make_signal_connection(std::unique_ptr<F>& data, Eo* eo, ::Eo_ namespace _detail { template <typename T, typename P, typename F> -Eina_Bool really_call_event(T& wrapper, F& f, void *, std::true_type, std::true_type) +void really_call_event(T& wrapper, F& f, void *, std::true_type) { f(wrapper); - return true; } template <typename T, typename P, typename F> -Eina_Bool really_call_event(T& wrapper, F& f, void *info, std::true_type, std::false_type) +void really_call_event(T& wrapper, F& f, void *info, std::false_type) { f(wrapper, convert_to_event<P>(info)); - return true; -} -template <typename T, typename P, typename F> -Eina_Bool really_call_event(T& wrapper, F& f, void *, std::false_type, std::true_type) -{ - return f(wrapper); -} -template <typename T, typename P, typename F> -Eina_Bool really_call_event(T& wrapper, F& f, void *info, std::false_type, std::false_type) -{ - return f(wrapper, convert_to_event<P>(info)); } -template <typename T, typename P, typename F, typename Enable = void> -struct is_void; -template <typename T, typename P, typename F> -struct is_void<T, P, F, typename std::enable_if - <std::is_void<decltype(std::declval<F>()(std::declval<T>(), std::declval<P>()))>::value>::type> - : std::true_type {}; -template <typename T, typename P, typename F> -struct is_void<T, P, F, typename std::enable_if - <!std::is_void<decltype(std::declval<F>()(std::declval<T>(), std::declval<P>()))>::value>::type> - : std::false_type {}; -template <typename T, typename F> -struct is_void<T, void, F, typename std::enable_if - <std::is_void<decltype(std::declval<F>()(std::declval<T>()))>::value>::type> - : std::true_type {}; -template <typename T, typename F> -struct is_void<T, void, F, typename std::enable_if - <!std::is_void<decltype(std::declval<F>()(std::declval<T>()))>::value>::type> - : std::false_type {}; - template <typename T, typename P, typename F> -Eina_Bool -event_callback(void *data, ::Eo_Event const* event) +void event_callback(void *data, ::Eo_Event const* event) { T wrapper(::eo_ref(event->object)); F *f = static_cast<F*>(data); - return _detail::really_call_event<T, P> - (wrapper, *f, event->info, is_void<T, P, F>(), std::is_void<P>{}); + _detail::really_call_event<T, P> + (wrapper, *f, event->info, std::is_void<P>{}); } } --
