Comments (3)
Has to be some bug with the shared_ptr recognition. Doesn't recognize it as holder type somehow.
from luabind-deboostified.
Hello, this is an incompatibility I intridocuded when taking the whole thing apart.
The original luabind did all kinds of conversion trickery stuff so you could give any parameter at any of the 4 template argument indices. I switched to <class, base or base list, holder type, wrapper type>. The holder type is what you're trying to achieve there. The fix for your case would be to introduce a "luabind::no_bases" inbetween the parameters. That being said - the luabind I forked from was incredibly buggy with regards to shared pointers, which leads to the point where shared counts get fragmented, which again leads literally to death. As I noted in your first post, I have a version in personal use that preserves smart pointer integrity without resorting to custom deleter tricks that don't work anyways (if interested also have a look at the corresponding bug report in oberon's repo). However I made that change while also allocating user data memory from within the generated constructors (to store any size of object per value in one place), which basically breaks the luabind class machinery on the lua side (Ie. defining classes or deriving from wrap_base classes), because they relied on the constructor to in-place-construct into prescribed memory boundaries (which means that the prepared memory only really holds a pointer to the real object in the end if it was larger than 16 bytes or something). So it's currently a technical problem to somehow make that work again. I consider backporting the smart-pointer stuff so not too much time passes by until I fixed the classes. I also need to work out the implicit casting of smart pointers (which "worked" in the original source because the smart pointers were just stripped away, introducing the said problems).
To the initial problem: Is the "any parameter at any parameter index"-thingy that luabind had wanted? If so, I will reintroduce it and see if I can document it better so that anybody knows what's going on. I found it to be unintuitive when working on that part.
Thank you for your feedback, this really helps me a lot!
from luabind-deboostified.
Hey, huge thanks for that! I should have seen the bases template parameter.
Anything new regarding smart_ptr support?
from luabind-deboostified.
Related Issues (20)
- const references to floats do not work with object calls HOT 5
- runtime error when calling lua function from C++, passing a const char* HOT 6
- Returning a null smart pointer from C++ does not return a nil object HOT 9
- assertion failure in object_rep::add_dependency HOT 6
- Do you have any plans to extend initial functionality? HOT 2
- gcc Error: wrong number of template arguments (1, should be 3) HOT 13
- Support object_cast_nothrow with std::optional HOT 3
- Unit test "test_policies.cpp" fails to be build on GCC 6.3 because of "out_value_policy.hpp" HOT 1
- Dead code warning of Coverity Scan on "luabind/detail/format_signature.hpp" HOT 15
- test_implicit_cast.cpp test fails
- Lua classes from C++ HOT 33
- Terminate only when callback wasn't set HOT 4
- Which branch does not contain the boost dependency? HOT 1
- Calling C++ functions with default arguments from Lua HOT 8
- Multiple Return Values HOT 2
- Failed to build latest state (87897cf) on GCC 6.4.0 HOT 4
- set_package_preload?
- test_implicit_cast crashes gcc 4.7.3 HOT 2
- pure_out_value with discard_result HOT 3
- warning: class template partial specialization contains template parameters that can not be deduced; this partial specialization will never be used
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from luabind-deboostified.