eolian-cxx: Remove Eina_Bool from event function wrapper
authorFelipe Magno de Almeida <felipe@expertisesolutions.com.br>
Mon, 20 Jun 2016 22:35:50 +0000 (19:35 -0300)
committerFelipe Magno de Almeida <felipe@expertisesolutions.com.br>
Mon, 20 Jun 2016 22:35:50 +0000 (19:35 -0300)
src/bindings/cxx/eo_cxx/eo_event.hh

index 2120121..a66a043 100644 (file)
@@ -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>{});
 }
 }