diff --git a/examples/tables.cpp b/examples/tables.cpp index be2dfde9..98db99cc 100644 --- a/examples/tables.cpp +++ b/examples/tables.cpp @@ -18,19 +18,40 @@ int main() { "}"); + auto t2 = lua.get("table2"); + auto nestedTable = t2.get("nestedTable"); + + /* Shorter Syntax: */ + // using the values stored in table1 + /*std::cout << (std::string)lua["table1"][1] << " " + << (std::string)lua["table1"][2] << '\n'; + */ + // some retrieval of values from the nested table + // the cleaner way of doing things + // chain off the the get<>() / [] results + std::string x = lua["table2"]["nestedTable"]["key2"]; + std::cout << "nested table: key1 : " << nestedTable.get("key1") << ", key2: " + << x + << '\n'; + std::cout << "name of t2: " << t2.get("name") << '\n'; +#ifndef _MSC_VER + // VC++ has a bug in its implementation and + // I've filed a bug against the compiler at Microsoft, + // but the following + // works on g++ and clang++ + std::cout << "name of t2: " << (std::string)t2["name"] << '\n'; +#endif // VC++ being a dumb + + /* Longer Syntax: */ // using the values stored in table1 std::cout << lua.get("table1").get(1) << " " << lua.get("table1").get(2) << '\n'; - auto t2 = lua.get("table2"); - auto nestedTable = t2.get("nestedTable"); - // some retrieval of values from the nested table // the cleaner way of doing things std::cout << "nested table: key1 : " << nestedTable.get("key1") << ", key2: " // yes you can chain the get<>() results << lua.get("table2").get("nestedTable").get("key2") << '\n'; - std::cout << "name of t2: " << t2.get("name") << '\n'; }