итератор luabind 0.9.1 всегда выдает только последний объект - PullRequest
1 голос
/ 17 июля 2011

все. У меня возникла странная проблема с использованием luabind для чтения массива из сценария lua.

Скрипт lua выглядит так:

root = 
{
        id = 1,
        id = 2,
        id = 3
};

и код C ++ выглядит так: luabind :: object data_root = luabind :: globals (L) ["root"];

for (luabind::iterator i(data_root), end; i != end; ++i)
{
    luabind::object data = *i;
    unsigned int id = luabind::object_cast<unsigned int>(data);
    std::cout << "id:" << id << std::endl;
}

вывод только:

id:3

Я хочу вывести все элементы [root], но он выводит только последний и более.

Спасибо, Джейсон:)

1 Ответ

2 голосов
/ 17 июля 2011

Нет нескольких элементов root, есть только один.Вы присвоили ключ id трем различным значениям, но ключ существует только один раз и имеет только одно значение, связанное с ним, поэтому вы в основном только когда-либо говорили root = { id = 3 }.

...