Tôi đang cố gắng kết hợp một lớp học từ thư viện mà tôi đang sử dụng ở Lua. Đặc biệt, tôi đang cố gắng bọc lớp màu khỏi SFML. Có thể xem toàn bộ nguồn cho lớp màu sắc here và here.Không có chức năng phù hợp để gọi cho nhà điều hành mới
Đây là chức năng đó là rằng tôi thất bại trong.
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;
}
Và đây là lỗi
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
tôi làm những điều tương tự ở một vài nơi khác mà không gặp phải lỗi này, vì vậy tôi không chắc điều gì sẽ gây ra nó. Nhìn vào mã nguồn của màu sắc, tôi không thấy bất cứ điều gì lạ hoặc không bình thường, và tôi đã hết ý tưởng. Tôi cũng đã thử sử dụng hàm tạo mặc định (nghĩa là không có đối số) và sau đó chỉ cần thiết lập giá trị sau đó, nhưng điều đó cũng không làm được điều gì tốt.
Điều này không liên quan đến Lua. – lhf
Tôi không biết rằng vào thời điểm đó. : P – Alex