diff options
author | Andy Belle-Isle <abelleisle@protonmail.com> | 2022-11-13 13:55:26 -0600 |
---|---|---|
committer | Andy Belle-Isle <abelleisle@protonmail.com> | 2022-11-13 13:55:26 -0600 |
commit | 38e2036d031bdeaea76ef4b6c3c2af5247ed93ec (patch) | |
tree | b1401ba2ef33d08dbc528aadbf61f0d4aedad63d /lib/sol2/examples/source/self_from_lua.cpp | |
parent | 57a1eb6fdccb9023557d0a470796f423f063948a (diff) | |
parent | 57013add5b7c524086272be7d395f9ec5109bde2 (diff) |
Merge remote-tracking branch 'origin/lib-cleanup' into world
Diffstat (limited to 'lib/sol2/examples/source/self_from_lua.cpp')
-rw-r--r-- | lib/sol2/examples/source/self_from_lua.cpp | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/lib/sol2/examples/source/self_from_lua.cpp b/lib/sol2/examples/source/self_from_lua.cpp deleted file mode 100644 index f3af69d..0000000 --- a/lib/sol2/examples/source/self_from_lua.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#define SOL_ALL_SAFETIES_ON 1 -#include <sol/sol.hpp> - -#include "assert.hpp" - -// NOTE: -// There are TWO ways to retrieve the "this" -// object from calls, when it comes to constructors and regular member functions -// please pay attention to both: this is a low-level operation! - -int main() { - struct thing { - - thing(sol::this_state ts) { - lua_State* L = ts; - // references the object that called this function - // in constructors: - sol::stack_object selfobj(L, -1); - // the -1 (NEGATIVE one) above - // means "off the top fo the stack" - // (-1 is the top, -2 is one below, etc...) - - // definitely the same - thing& self = selfobj.as<thing>(); - c_assert(&self == this); - } - - void func(sol::this_state ts) const { - lua_State* L = ts; - // references the object that called this function - // in regular member functions: - sol::stack_object selfobj(L, 1); - // "1" is the bottom of the Lua stack - // 2 is one up, so on and so forth... - thing& self = selfobj.as<thing>(); - - // definitely the same - c_assert(&self == this); - } - }; - - sol::state lua; - lua.open_libraries(sol::lib::base); - - lua.new_usertype<thing>("thing", - sol::constructors<thing(sol::this_state)>(), - "func", &thing::func - ); - - lua.script(R"( -obj = thing.new() -obj:func() - )"); - - return 0; -} |