Comments (4)
I think I could have solved the problem specializing LuaTypeMapping:
template <typename T>
struct LuaTypeMapping <std::shared_ptr<T>>
{
using Type = std::shared_ptr<T>; //typename std::decay<T>::type;
static constexpr bool isConst = std::is_const<T>::value;
static void push(lua_State* L, const Type& p)
{
if (p == nullptr) {
lua_pushnil(L);
} else {
//CppObjectPtr::pushToStack(L, const_cast<Type*>(p), isConst);
CppObjectSharedPtr<Type, T>::pushToStack(L, p, isConst);
}
}
static Type get(lua_State* L, int index)
{
return CppObject::get<Type>(L, index, isConst);
}
static Type opt(lua_State* L, int index, const Type& def)
{
if (lua_isnoneornil(L, index)) {
return def;
} else {
return CppObject::get<Type>(L, index, isConst);
}
}
};
GC from Lua seems to be called correctly but I really have no idea if I have solved my problem correctly or if I made some bad mistake.
local my_shared_ptr_class = foo.create_shared_ptr_class()
my_shared_ptr_var = nil
collectgarbage() -- class destructor called
...
Thank you for any advice you can give me, best regards
from lua-intf.
The problem is LuaTypeMappingExists does not work well with GCC (clang works fine), I will fix that later. Or you can use the following version (prior to VS 2015 patch):
Specializing LuaTypeMapping can be a temperately workaround, but it is not necessary once the fix is ready.
from lua-intf.
I thought that could have been GCC fault. I'll wait your fix for GCC, thank you for your help!
from lua-intf.
It works perfectly now, thanks.
Specializing LuaTypeMapping was not a good idea in the end and I had to use the 439be2e version until now.
from lua-intf.
Related Issues (20)
- Why LuaRef::call is not const? HOT 1
- Passing a C++ shared_ptr to LUA HOT 1
- How to make exported module non-global? HOT 6
- Can't bind lua_State* or Lambda to getter/setter HOT 3
- Getting pointer to the object from the Lua stack with LuaRef? HOT 1
- unprotected error in call to lua api when passing std::vector as argument in luaref calls
- How do I work on a returning pointer in Lua? HOT 1
- LUA_FN issues
- Bunch of warnings with /W4 in Visual C++
- How to start with the wrapper? HOT 7
- How can I know the function name from LuaRef HOT 4
- error: no member named 'clear' in 'LuaIntf::LuaRef'
- Comparison of userdata in scripts HOT 1
- Luajit support
- mutithread error handle
- lua_isinteger is missing in LuaState
- Support Lua 5.4
- Svar: Consider using a unified binding across languages
- pass args from lua to cpp problem in coroutines HOT 1
- Calling c++ function dosen't return value correctly in lua coroutine function, it just returned function's input arguments HOT 1
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 lua-intf.