felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=44c0199f4213a1b600569674ff3d6bc3d9395704

commit 44c0199f4213a1b600569674ff3d6bc3d9395704
Author: Felipe Magno de Almeida <fel...@expertisesolutions.com.br>
Date:   Thu Sep 14 15:06:10 2017 -0300

    eolian-cxx: Fix instantiate constructor with lambda after disambiguation 
patch
---
 src/lib/eolian_cxx/grammar/class_definition.hpp |  2 +-
 src/tests/eolian_cxx/eolian_cxx_test_binding.cc | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/lib/eolian_cxx/grammar/class_definition.hpp 
b/src/lib/eolian_cxx/grammar/class_definition.hpp
index 2e53b6e6a7..71808a3a48 100644
--- a/src/lib/eolian_cxx/grammar/class_definition.hpp
+++ b/src/lib/eolian_cxx/grammar/class_definition.hpp
@@ -73,7 +73,7 @@ struct class_definition_generator
          << scope_tab << "{\n"
          << scope_tab << scope_tab << "::efl::eolian::do_eo_add( 
::efl::eo::concrete::_eo_raw, ::efl::eo::concrete{nullptr}, _eo_class(), f);\n"
          << scope_tab << "}\n"
-         << scope_tab << "template <typename F> " << string << "(  
::efl::eo::instantiate_t, ::efl::eo::concrete parent, F f, typename 
::std::enable_if< ::efl::eolian::is_callable<F>::value>::type* = 0)\n"
+         << scope_tab << "template <typename T, typename F> " << string << "(  
::efl::eo::instantiate_t, T&& parent, F f, typename ::std::enable_if< 
::efl::eolian::is_callable<F>::value && 
::efl::eo::is_eolian_object<T>::value>::type* = 0)\n"
          << scope_tab << "{\n"
          << scope_tab << scope_tab << "::efl::eolian::do_eo_add( 
::efl::eo::concrete::_eo_raw, parent, _eo_class(), f);\n"
          << scope_tab << "}\n"
diff --git a/src/tests/eolian_cxx/eolian_cxx_test_binding.cc 
b/src/tests/eolian_cxx/eolian_cxx_test_binding.cc
index 489a308493..90f880e319 100644
--- a/src/tests/eolian_cxx/eolian_cxx_test_binding.cc
+++ b/src/tests/eolian_cxx/eolian_cxx_test_binding.cc
@@ -44,6 +44,17 @@ START_TEST(eolian_cxx_test_binding_constructor_all_optionals)
     }
     );
 
+  nonamespace::Generic g2
+    (efl::eo::instantiate, g,
+    [&]
+    {
+      g.required_ctor_a(2);
+      g.required_ctor_b(4);
+      g.optional_ctor_a(3);
+      g.optional_ctor_b(5);
+    }
+    );
+  
   fail_if(2 != g.req_ctor_a_value_get());
   fail_if(3 != g.opt_ctor_a_value_get());
   fail_if(4 != g.req_ctor_b_value_get());

-- 


Reply via email to