При работе с платформой (Godot), которая использует register_method(<name>, <pointer_to_method>)
для регистрации метода c ++ в API сценариев.
однако этот метод не поддерживает указатель на классы шаблона.
Итак, в примере:
static void _register_methods() {
register_method("my_method", &TMyClass::my_method); // this fails
// ^ template class
register_method("my_method", &MyClass::my_method); // this works
// ^ normal class
}
У меня есть класс шаблона TExample и пример, который расширяет класс шаблона. Объявления методов и определения методов находятся внутри TExample (однако методы зарегистрированы в Примере).
Итак, когда я делаю:
register_method("my_method", &Example::my_method); // this fails because it is referencing the method of the parent class (template).
Я обнаружил, что работает работает перенаправление методов на «локальные» методы.
class Example : TExample<...>
{
public:
void my_method() {
TExample::my_method();
}
static void _register_methods() {
register_method("my_method", &Example::my_method); // this works
}
}
Но представьте, у меня около 50 методов каждый раз, когда я хочу создать новый класс из шаблона, мне нужно перенаправить 50 методов. есть ли ярлык для этого?!