Я пытаюсь обернуть класс из библиотеки, которую я использую в Lua. В частности, я пытаюсь обернуть класс цвета из SFML. Полный источник для класса цветов можно увидеть здесь и здесь.
Это функция, с которой я не могу выполнить.
int SFColor_new(lua_State* L)
{
// omitting part where I set r, g, b, and a
new (lua_newuserdata(L, sizeof(Color))) Color(r, g, b, a); // Line 47
luaL_getmetatable(L, LuaInfo<Color>::myMetaTableName);
lua_setmetatable(L, -2);
return 1;
}
И это ошибка
LuaSFMLColor.cpp: In function ‘int ag::SFColor_new(lua_State*)’:
LuaSFMLColor.cpp:47: error: no matching function for call to ‘operator new(unsigned int, void*)’
<built-in>:0: note: candidates are: void* operator new(unsigned int)
make: *** [game] Error 1
Я делаю подобные вещи в нескольких других местах, не сталкиваясь с этой ошибкой, поэтому я не уверен, что бы это вызвало. Глядя на исходный код Color, я не вижу ничего странного или необычного, и у меня заканчиваются идеи. Я также попытался использовать конструктор по умолчанию (т.е. Никаких аргументов), а затем просто установил значение после этого, но это тоже не принесло пользы.