summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/sol2/examples/usertype_var.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/sol2/examples/usertype_var.cpp')
-rw-r--r--3rdparty/sol2/examples/usertype_var.cpp45
1 files changed, 0 insertions, 45 deletions
diff --git a/3rdparty/sol2/examples/usertype_var.cpp b/3rdparty/sol2/examples/usertype_var.cpp
deleted file mode 100644
index 9f56490aa29..00000000000
--- a/3rdparty/sol2/examples/usertype_var.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#define SOL_CHECK_ARGUMENTS
-#include <sol.hpp>
-#include <iostream>
-
-struct test {
- static int number;
-};
-int test::number = 25;
-
-
-int main() {
- sol::state lua;
- lua.open_libraries();
- lua.new_usertype<test>("test",
- "direct", sol::var(2),
- "number", sol::var(test::number),
- "ref_number", sol::var(std::ref(test::number))
- );
-
- int direct_value = lua["test"]["direct"];
- assert(direct_value == 2);
- // direct_value == 2
-
- int number = lua["test"]["number"];
- assert(number == 25);
- int ref_number = lua["test"]["ref_number"];
- assert(ref_number == 25);
-
- test::number = 542;
-
- assert(lua["test"]["number"] == 25);
- // number is its own memory: was passed by value
- // So does not change
-
- assert(lua["test"]["ref_number"] == 542);
- // ref_number is just test::number
- // passed through std::ref
- // so, it holds a reference
- // which can be updated
- // be careful about referencing local variables,
- // if they go out of scope but are still reference
- // you'll suffer dangling reference bugs!
-
- return 0;
-} \ No newline at end of file