одного из методов требуется передавать указатели на функции. Что то типа:
c++ double (* f) (const gsl_vector * x, void * params)
При этом есть класс c++ fdf_function, содержащий std::function'ы типа c++ std::function<double(const std::array<double, dim>&). Окей я пишу функции, имеющие сигнатуры c++ double fdf_function::(*f) (const gsl_vector * x, void * params). Можно ли их привести к требуемому виду?
Функции члены недавняя привести. Тебе надо использовать статические функции класса, глобальные функции, или лямбды без захвата
thread_local std::function* helper; double helper_function(const gsl_vector * x, void * params) { return (*helper)(x, params); } // ... helper = &my_std_function_instance; some_native(&helper_function);
Но это не для прода, сразу предупреждаю) https://github.com/Toxa-man/CallbackConnector
Обсуждают сегодня