diff options
Diffstat (limited to '3rdparty/sol2/test_usertypes.cpp')
| -rw-r--r-- | 3rdparty/sol2/test_usertypes.cpp | 23 |
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); +} |
