Добрый день
У меня есть конкретная задача дать доступ c ++ std :: map к сценариям lua.Синтаксис желаемого скрипта: glob ["tag"] = "value" или glob ("tag") = "value"
В исследованиях пытались связать luabind
std::string & glob(const std::string &tag)
{
static std::string value;
return value;
}
...
luabind::module(&state)
[
def("glob", &glob, luabind::return_reference_to(result))
]
, но после запускаприведенного ниже сценария
glob("tag") = "asdasd"
print(glob("tag"))
получил ошибку [string "glob (" tag ") =" asdasd "..."]: 1: неожиданный символ рядом с '='
Итак,Я жду ваших предложений и мнений.
Спасибо
Обновление 2lhf: данные глобальных переменных хранятся и сериализуются через часть c ++ и должны быть доступны из lua.luaState создается для каждого выполнения скрипта и не существует между выполнениями.Одним из решений является создание и заполнение таблицы глобальных переменных перед выполнением скрипта и синхронизация с картой после выполнения, но, я думаю, это достаточно медленно.Таким образом, доступ через c-функцию с указанным синтаксисом будет приветствоваться.