Следующий синтаксис компилируется, но, похоже, не работает:
Конечно, это не работает;luabind::yield
решает другую проблему.yield
указывает системе выдавать после , когда функция завершается, не раньше и, конечно, не в середине.
Невозможно выполнить в середине функций C / C ++,В Lua 5.2 добавлена возможность устанавливать функцию «возобновления», но даже в этом случае существует значительная опасность уступки в коде C ++, поскольку Lua обычно не очищает стек.
Что вы хотите сделать, так этовыдает до вызова функции.Это было бы эквивалентно следующему коду Lua:
function myGet(...)
local tester = StartAsyncAction(...);
while(~tester:IsFinished()) do
coroutine.yield();
end
return tester:Get(...);
end
Вы не можете подражать этому в C / C ++;не с Lua 5.2.А Luabind не полностью поддерживает новые функции 5.2.