diff options
author | Andy Belle-Isle <drumsetmonkey@gmail.com> | 2019-08-30 00:19:31 -0400 |
---|---|---|
committer | Andy Belle-Isle <drumsetmonkey@gmail.com> | 2019-08-30 00:19:31 -0400 |
commit | bd3fe0cac583739bc0d7c4b5c8f301bb350abca0 (patch) | |
tree | 7eeb1aabcebd6999de1c3457d0882246ec0ff4d4 /lib/sol2/examples/source/require.cpp | |
parent | 2662ac356ce14dacfbc91689fd37244facff4989 (diff) |
Renamed lib to deps so github will ignore it for language stats
Diffstat (limited to 'lib/sol2/examples/source/require.cpp')
-rw-r--r-- | lib/sol2/examples/source/require.cpp | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/lib/sol2/examples/source/require.cpp b/lib/sol2/examples/source/require.cpp deleted file mode 100644 index 0b485ad..0000000 --- a/lib/sol2/examples/source/require.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#define SOL_ALL_SAFETIES_ON 1 -#include <sol/sol.hpp> - -#include "assert.hpp" -#include <iostream> - -struct some_class { - int bark = 2012; -}; - -sol::table open_mylib(sol::this_state s) { - sol::state_view lua(s); - - sol::table module = lua.create_table(); - module["func"] = []() { - /* super cool function here */ - return 2; - }; - // register a class too - module.new_usertype<some_class>("some_class", - "bark", &some_class::bark - ); - - return module; -} - -int main() { - std::cout << "=== require ===" << std::endl; - - sol::state lua; - lua.open_libraries(sol::lib::package, sol::lib::base); - // sol::c_call takes functions at the template level - // and turns it into a lua_CFunction - // alternatively, one can use sol::c_call<sol::wrap<callable_struct, callable_struct{}>> to make the call - // if it's a constexpr struct - lua.require("my_lib", sol::c_call<decltype(&open_mylib), &open_mylib>); - - // run some code against your require'd library - lua.safe_script(R"( -s = my_lib.some_class.new() -assert(my_lib.func() == 2) -s.bark = 20 -)"); - - some_class& s = lua["s"]; - c_assert(s.bark == 20); - std::cout << "s.bark = " << s.bark << std::endl; - - std::cout << std::endl; - - return 0; -}
\ No newline at end of file |