From dc2493e7525bb7633f697ef10f72b72b46222249 Mon Sep 17 00:00:00 2001 From: Andy Belle-Isle Date: Fri, 30 Aug 2019 00:45:36 -0400 Subject: Forget what I said, I just need to change git attributes to mark for vendor --- lib/sol2/examples/source/this_state.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 lib/sol2/examples/source/this_state.cpp (limited to 'lib/sol2/examples/source/this_state.cpp') diff --git a/lib/sol2/examples/source/this_state.cpp b/lib/sol2/examples/source/this_state.cpp new file mode 100644 index 0000000..9dd91f0 --- /dev/null +++ b/lib/sol2/examples/source/this_state.cpp @@ -0,0 +1,29 @@ +#define SOL_ALL_SAFETIES_ON 1 +#include + +#include "assert.hpp" + +int main () { + sol::state lua; + + lua.set_function("bark", []( sol::this_state s, int a, int b ){ + lua_State* L = s; // current state + return a + b + lua_gettop(L); + }); + + lua.script("first = bark(2, 2)"); // only takes 2 arguments, NOT 3 + + // Can be at the end, too, or in the middle: doesn't matter + lua.set_function("bark", []( int a, int b, sol::this_state s ){ + lua_State* L = s; // current state + return a + b + lua_gettop(L); + }); + + lua.script("second = bark(2, 2)"); // only takes 2 arguments + int first = lua["first"]; + c_assert(first == 6); + int second = lua["second"]; + c_assert(second == 6); + + return 0; +} \ No newline at end of file -- cgit v1.2.3