<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Funktions-Pointer]]></title><description><![CDATA[<p>Ich möchte das Package <a href="http://devernay.free.fr/hacks/cminpack.html" rel="nofollow">http://devernay.free.fr/hacks/cminpack.html</a> verwenden, habe aber Probleme, es in meine Klasse einzubinden.</p>
<p>Das Interface aus cminpack.h lautet:</p>
<pre><code class="language-cpp">typedef int (*minpack_func_mn)(void *p, int m, int n, const double *x, double *fvec, int iflag );

int lmdif1 ( minpack_func_mn fcn,
	       void *p, int m, int n, double *x, double *fvec, double tol,
	       int *iwa, double *wa, int lwa );
</code></pre>
<p>In meiner Klasse sieht es so aus:</p>
<pre><code class="language-cpp">void MyClass::opt() {
  int m, n, info, lwa, iwa[3];
  double tol, fnorm, x[3], fvec[15], wa[75];

  m = 15;
  n = 3;

  x[0] = 1.e0;
  x[1] = 1.e0;
  x[2] = 1.e0;

  lwa = 75;
  tol = sqrt(dpmpar(1));

  info = lmdif1(&amp;MyClass::errorFcn, 0, m, n, x, fvec, tol, iwa, wa, lwa);
}

int MyClass::errorFcn(void *p, int m, int n, const double *x, double *fvec, int iflag) {
  return 0;
}
</code></pre>
<p>Beim Compilieren erhalte ich den Fehler:</p>
<blockquote>
<p>error: cannot convert ‘int (MyClass::<em>)(void</em>, int, int, const double*, double*, int)’ to ‘int (<em>)(void</em>, int, int, const double*, double*, int)’ for argument ‘1’ to ‘int lmdif1(int (<em>)(void</em>, int, int, const double*, double*, int), void*, int, int, double*, double*, double, int*, double*, int)’</p>
</blockquote>
<p>Es gibt wohl ein Problem beim Funktions-Pointer. Kann mir bitte jemand helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/247970/funktions-pointer</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 08:07:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/247970.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Aug 2009 09:41:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktions-Pointer on Tue, 18 Aug 2009 09:42:35 GMT]]></title><description><![CDATA[<p>Ich möchte das Package <a href="http://devernay.free.fr/hacks/cminpack.html" rel="nofollow">http://devernay.free.fr/hacks/cminpack.html</a> verwenden, habe aber Probleme, es in meine Klasse einzubinden.</p>
<p>Das Interface aus cminpack.h lautet:</p>
<pre><code class="language-cpp">typedef int (*minpack_func_mn)(void *p, int m, int n, const double *x, double *fvec, int iflag );

int lmdif1 ( minpack_func_mn fcn,
	       void *p, int m, int n, double *x, double *fvec, double tol,
	       int *iwa, double *wa, int lwa );
</code></pre>
<p>In meiner Klasse sieht es so aus:</p>
<pre><code class="language-cpp">void MyClass::opt() {
  int m, n, info, lwa, iwa[3];
  double tol, fnorm, x[3], fvec[15], wa[75];

  m = 15;
  n = 3;

  x[0] = 1.e0;
  x[1] = 1.e0;
  x[2] = 1.e0;

  lwa = 75;
  tol = sqrt(dpmpar(1));

  info = lmdif1(&amp;MyClass::errorFcn, 0, m, n, x, fvec, tol, iwa, wa, lwa);
}

int MyClass::errorFcn(void *p, int m, int n, const double *x, double *fvec, int iflag) {
  return 0;
}
</code></pre>
<p>Beim Compilieren erhalte ich den Fehler:</p>
<blockquote>
<p>error: cannot convert ‘int (MyClass::<em>)(void</em>, int, int, const double*, double*, int)’ to ‘int (<em>)(void</em>, int, int, const double*, double*, int)’ for argument ‘1’ to ‘int lmdif1(int (<em>)(void</em>, int, int, const double*, double*, int), void*, int, int, double*, double*, double, int*, double*, int)’</p>
</blockquote>
<p>Es gibt wohl ein Problem beim Funktions-Pointer. Kann mir bitte jemand helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1762748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1762748</guid><dc:creator><![CDATA[JustMe]]></dc:creator><pubDate>Tue, 18 Aug 2009 09:42:35 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions-Pointer on Tue, 18 Aug 2009 09:45:05 GMT]]></title><description><![CDATA[<p>Mach errorFcn statisch oder als freie Funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1762751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1762751</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 18 Aug 2009 09:45:05 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions-Pointer on Wed, 19 Aug 2009 11:50:43 GMT]]></title><description><![CDATA[<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1763417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1763417</guid><dc:creator><![CDATA[JustMe]]></dc:creator><pubDate>Wed, 19 Aug 2009 11:50:43 GMT</pubDate></item></channel></rss>