Проблема с указателем на функцию. Как эффективно взаимодействовать с C API (т.е. GSL) из класса C ++?

Этот вопрос, кажется, задавался много раз, например,here1, здесь 2 а такжеhere3.

То, что я пытаюсь сделать, это установить членfunction C-Structgsl_function к функции-члену моего класса.

class MyClass{

    double foo(double x)
    {
        return ...;
    }

    double bar(double x)
    {
        ...
        gsl_function F;
        // Problem I cant do this (compiler error)
        F.function = &(this->foo);
    }
};

Третийссылка на сайт выше предлагает решение, я думаю, что оно основано на описанном подходеhere4.

Так что мой вопрос, могу ли я сделать лучше. Есть ли более простой способ? Например, возможно с использованием функции Boost и объектов Bind.

Я оцениваю возможность использования gsl-оболочки, такой как o2scl. Но я немного разочарован, поскольку могу заплатить цену позже, если обертка не в хорошем состоянии. Какие-либо предложения?

Ответы на вопрос(1)

Ваш ответ на вопрос