summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/sol2/test_usertypes.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/sol2/test_usertypes.cpp')
-rw-r--r--3rdparty/sol2/test_usertypes.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/3rdparty/sol2/test_usertypes.cpp b/3rdparty/sol2/test_usertypes.cpp
index 8d5d6c01b72..d23d45c14ae 100644
--- a/3rdparty/sol2/test_usertypes.cpp
+++ b/3rdparty/sol2/test_usertypes.cpp
@@ -1423,3 +1423,26 @@ TEST_CASE("usertype/destruction-test", "make sure usertypes are properly destruc
lua["testCrash"]();
}
}
+
+TEST_CASE("usertype/call-initializers", "Ensure call constructors with initializers work well") {
+ struct A {
+ double f = 25.5;
+
+ static void init(A& x, double f) {
+ x.f = f;
+ }
+ };
+
+ sol::state lua;
+ lua.open_libraries();
+
+ lua.new_usertype<A>("A",
+ sol::call_constructor, sol::initializers(&A::init)
+ );
+
+ lua.script(R"(
+a = A(24.3)
+)");
+ A& a = lua["a"];
+ REQUIRE(a.f == 24.3);
+}