gsl/gsl_odeiv2g++ を使用して、ODE ソルバーに関連するサンプル コードをコンパイルしようとしています。以下のコードは彼らのウェブサイトからのものです:
http://www.gnu.org/software/gsl/manual/html_node/ODE-Example-programs.html 
gcc では正常にコンパイルされますが、g++ ではエラーがスローされます。
invalid conversion from 'void*' to 'int (*)(double, const double*, double*, double*,
void*)' [-fpermissive]
コードで:
#include <stdio.h>
#include <gsl/gsl_errno.h>
#include <gsl/gsl_matrix.h>
#include <gsl/gsl_odeiv2.h>
int func (double t, const double y[], double f[], void *params)
{
    double mu = *(double *)params;
    f[0] = y[1];
    f[1] = -y[0] - mu*y[1]*(y[0]*y[0] - 1);
    return GSL_SUCCESS;
}
int * jac;
int main ()
{
    double mu = 10;
    gsl_odeiv2_system sys = {func, jac, 2, &mu};
    gsl_odeiv2_driver * d = gsl_odeiv2_driver_alloc_y_new (&sys, gsl_odeiv2_step_rkf45, 1e-6, 1e-6, 0.0);
    int i;
    double t = 0.0, t1 = 100.0;
    double y[2] = { 1.0, 0.0 };
    for (i = 1; i <= 100; i++)
    {
        double ti = i * t1 / 100.0;
        int status = gsl_odeiv2_driver_apply (d, &t, ti, y);
        if (status != GSL_SUCCESS)
        {
            printf ("error, return value=%d\n", status);
            break;
        }
        printf ("%.5e %.5e %.5e\n", t, y[0], y[1]);
    }
    gsl_odeiv2_driver_free (d);
    return 0;
}
エラーは行に表示されます
gsl_odeiv2_system sys = {func, jac, 2, &mu};
この問題を解決するための助けは素晴らしいでしょう。いくつかの stdlib 要素を含めることを望んでいるため、C++ としてコンパイルしたいと考えています。また、g++-4.7 でコンパイルできるようになれば、言語への C++11 の追加機能を使用して、より簡単にマルチスレッド化できます。どうもありがとうございました。