I have a working C++ module with this method:
PoolVector2Array w_take2DKeypoints(std::size_t bodypart = std::size_t(BodyKeypoints::ALL));
and it was bound as such:
ClassDB::bind_method(D_METHOD("take2DKeypoints", "bodypart"), &Controller::w_take2DKeypoints);
Now I want to extend this method with additional functionality so it needs more arguments:
PoolVector2Array w_take2DKeypoints(siz bodypart = siz(BodyKeypoints::ALL), float multix = 1, float multiy = 1, float movex = 0, float movey = 0, float prex = 0, float prey = 0);
ClassDB::bind_method(D_METHOD("take2DKeypoints", "bodypart", "multix", "multiy", "movex", "movey", "prex", "prey"), &WallieController::w_take2DKeypoints);
After I did that, it won't build anymore:
./core/class_db.h: In instantiation of 'static MethodBind* ClassDB::bind_method(N, M) [with N = MethodDefinition; M = PoolVector<Vector2> (WallieController::*)(long unsigned int, float, float, float, float, float, float)]':
[...]/walliecontroller.cpp:347:22: required from here
./core/class_db.h:228:54: error: no matching function for call to 'create_method_bind(PoolVector<Vector2> (WallieController::*&)(long unsigned int, float, float, float, float, float, float))'
228 | MethodBind *bind = create_method_bind(p_method);