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/tie.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 lib/sol2/examples/source/tie.cpp (limited to 'lib/sol2/examples/source/tie.cpp') diff --git a/lib/sol2/examples/source/tie.cpp b/lib/sol2/examples/source/tie.cpp new file mode 100644 index 0000000..c61701b --- /dev/null +++ b/lib/sol2/examples/source/tie.cpp @@ -0,0 +1,39 @@ +#define SOL_ALL_SAFETIES_ON 1 +#include + +#include "assert.hpp" + +int main (int, char*[]) { + + const auto& code = R"( + bark_power = 11; + + function woof ( bark_energy ) + return (bark_energy * (bark_power / 4)) + end +)"; + + sol::state lua; + + lua.script(code); + + sol::function woof = lua["woof"]; + double numwoof = woof(20); + c_assert(numwoof == 55.0); + + lua.script( "function f () return 10, 11, 12 end" ); + + sol::function f = lua["f"]; + std::tuple abc = f(); + c_assert(std::get<0>(abc) == 10); + c_assert(std::get<1>(abc) == 11); + c_assert(std::get<2>(abc) == 12); + // or + int a, b, c; + sol::tie(a, b, c) = f(); + c_assert(a == 10); + c_assert(b == 11); + c_assert(c == 12); + + return 0; +} -- cgit v1.2.3