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

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

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 ответов

Другие вопросы по тегам