path: root/src/bindings
diff options
authorVitor Sousa <>2015-06-24 15:23:01 +0100
committerDaniel Kolesa <>2015-06-24 15:23:01 +0100
commitdae35333fd905507ddae01a69add184ea1e3d10f (patch)
tree3c06a501248acbbb01234a77a376275c7f84a2ba /src/bindings
parenteff0e37947d939dc26a2a9997ca79d3d8b5effae (diff)
eolian_cxx: Use C++ wrappers instead of native types as parameters
Summary: Using C++ wrapper types in the signature of methods of the generated classes. Now, when the type is an Eo type defined in Eolian, eolian_cxx will detect it and use the equivalent C++ wrapper. Types defined in Eolian no longer need to be specified in the lookup table, so removed them from there. Disable wrapping of non-const char*. The current wrapper (unique_ptr) is not suited for some required operations like ownership acquisition from C code. Fix constructing properties that only have the "set" method. Fix translation of non-const parameters. Modified Makefiles to allow proper inclusion of evas_cxx headers required by some tests and examples. Move one auxiliary function to another reader to make it more accessible. @feature Reviewers: felipealmeida, q66, cedric Subscribers: cedric Differential Revision:
Diffstat (limited to 'src/bindings')
1 files changed, 2 insertions, 2 deletions
diff --git a/src/bindings/eo_cxx/eo_cxx_interop.hh b/src/bindings/eo_cxx/eo_cxx_interop.hh
index ef3e9c73f5..e0fd2ed355 100644
--- a/src/bindings/eo_cxx/eo_cxx_interop.hh
+++ b/src/bindings/eo_cxx/eo_cxx_interop.hh
@@ -100,14 +100,14 @@ Eo** to_c(T* v, typename std::enable_if<std::is_convertible<T*, ::efl::eo::concr
100} 100}
101 101
102template <typename R, typename T> 102template <typename R, typename T>
103R to_native(T const& v) 103R to_native(T& v)
104{ 104{
105 static_assert(sizeof(T) == sizeof(R), ""); 105 static_assert(sizeof(T) == sizeof(R), "");
106 return v.native_handle(); 106 return v.native_handle();
107} 107}
108 108
109template <typename R, typename T> 109template <typename R, typename T>
110R to_native(eina::optional<T> const& v) 110R to_native(eina::optional<T>& v)
111{ 111{
112 static_assert(sizeof(T) == sizeof(R), ""); 112 static_assert(sizeof(T) == sizeof(R), "");
113 if (!v) 113 if (!v)