Привязать лямбду к белке

Возникли проблемы с привязкой функции к белке. Выполнение некоторых пользовательских привязок, поэтому я не могу использовать любые библиотеки.

void SqurrelEng::bindFunction(const std::string & name, function_callback f, const std::string & arguments)
{
sq_pushroottable(vm.handle());
sq_pushstring(vm.handle(), name.c_str(), -1);
sq_newclosure(vm.handle(), [&f,&arguments](HSQUIRRELVM v)->SQInteger
{
unsigned char* line = (unsigned char*)"test";
unsigned char** dat = &line;
f(dat);
return 1;
}, arguments.size()); //create a new function
sq_createslot(vm.handle(), -3);
sq_pop(vm.handle(), 1); //pops the root table
}

Я не могу заставить лямбду правильно связываться из-за захвата. Без добавления шаблона к этому вызову функции?

Кроме того, последний аргумент sq_newclosure — это количество аргументов, которое он принимает правильно?

Ошибка:

no suitable conversion function from "lambda []SQInteger (HSQUIRRELVM v)->SQInteger" to
"SQFUNCTION" exists

SQFunction определяется как:

typedef SQInteger (*SQFUNCTION)(HSQUIRRELVM);

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]