Estoy tratando de ajustar una clase de una biblioteca que estoy usando en Lua. Específicamente, estoy intentando envolver la clase de color de SFML. La fuente completa para la clase de color se puede ver here y here.No hay función de coincidencia para llamar al operador nuevo
Esta es la función de eso es que estoy fallando en.
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;
}
Y este es el error
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
que hacer cosas similares en algunos otros lugares sin caer en este error, así que no estoy seguro de qué lo estaría causando. Al mirar el código fuente de Color, no veo nada raro o fuera de lo común, y me quedo sin ideas. También intenté usar el constructor predeterminado (es decir, sin argumentos) y luego establecer el valor después, pero tampoco sirvió de nada.
Esto no está relacionado con Lua. – lhf
No lo sabía en ese momento. : P – Alex