diff --git a/examples/source/table_as_container.cpp b/examples/source/table_as_container.cpp new file mode 100644 index 00000000..d040d397 --- /dev/null +++ b/examples/source/table_as_container.cpp @@ -0,0 +1,33 @@ +#define SOL_ALL_SAFETIES_ON 1 +#include + +#include "assert.hpp" + +struct Vector { + int x; + int y; + + Vector() = default; + + Vector(int _x, int _y) : x { _x }, y { _y } { + } +}; + +int main() { + sol::state lua; + lua.open_libraries(sol::lib::base); + + lua.new_usertype( + "Vector", sol::constructors(), "x", sol::property(&Vector::x, &Vector::x), "y", sol::property(&Vector::y, &Vector::y)); + + lua.script("vectors = { Vector.new(3, 6), Vector.new(6, 3) }"); + auto vectors = lua["vectors"].get>(); + + c_assert(vectors[0].x == 3); + c_assert(vectors[0].y == 6); + + c_assert(vectors[1].x == 6); + c_assert(vectors[1].y == 3); + + return 0; +} diff --git a/examples/source/table_proxy.cpp b/examples/source/table_proxy.cpp index 516fc16f..bc0f2775 100644 --- a/examples/source/table_proxy.cpp +++ b/examples/source/table_proxy.cpp @@ -3,9 +3,7 @@ #include "assert.hpp" -#include - -int main () { +int main() { const auto& code = R"( bark = { @@ -40,7 +38,7 @@ int main () { lua.script("assert(bark.woof[2] == 20)"); lua["a_new_value"] = 24; - lua["chase_tail"] = [](int chasing) { + lua["chase_tail"] = [](int chasing) { int r = 2; for (int i = 0; i < chasing; ++i) { r *= r;