У меня есть файл lua, который выглядит так:
tableA = {...}
tableB = {...}
tableC = {...}
Я хочу получить std :: vector, который будет содержать имена всех таблиц, определенных в файле: {«tableA», «tableB», «tableC»}
Как я могу сделать это с Lua C API?
Таблицы не имеют имен. Переменные делают. В этом случае переменные являются глобальными, поэтому имя переменной является просто ключом в таблице глобальных переменных. Тем не менее, если это API, который вы пишете, то это, вероятно, плохой дизайн. Вы должны дать сценарию средство «регистрации» значимых значений, а не заставлять автора сценария помещать их в определенное место.
Чтобы получить имена случайных глобальных переменных, созданных во время выполнения файла сценария, вам нужно будет использовать игры среды для запуска сценария в вашем собственном «глобальном» контексте.
Если вы можете изменить скрипт, было бы гораздо проще заставить его возвращать таблицы (или только их имена) вызывающему скрипту.