<?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[Callback-Funktion mit boost::function]]></title><description><![CDATA[<p>Hallo Gemeinde,</p>
<p>ich mache gerade einen Test für eine Callback-Funktion mit boost::function, jedoch habe ich das Problem, das die Funktions-Signatur irgendwie nicht übereinstimmt. Jedoch kann ich den Fehler nicht finden.</p>
<pre><code class="language-cpp">#include &lt;boost/function.hpp&gt; 
#include &lt;iostream&gt; 

void testCallback(int i)
{
	std::cout &lt;&lt; &quot;Callback uebergeben: &quot; &lt;&lt; i &lt;&lt; std::endl;
}

void run(int a, void (*callback)(int))
{
	callback(a);
}

int main() 
{ 
	boost::function&lt;void (int)&gt; f = testCallback;
        f(4);
	run(5, f);

	return 0;
}
</code></pre>
<p>Wenn ich in der &quot;run&quot; funktion statt f testCallback rein schreibe, funktioniert alles. Aber mit boost::function klappt das irgendwie nicht.</p>
<p>Hat da jemand einen Tipp für mich, was daran falsch ist?</p>
<p>Die Fehlermeldung:</p>
<blockquote>
<p>'run': Konvertierung des Parameters 2 von 'boost::function&lt;Signature&gt;' in 'void (__cdecl *)(int)' nicht möglich<br />
1&gt; with<br />
1&gt; [<br />
1&gt; Signature=void (int)<br />
1&gt; ]<br />
1&gt; Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden</p>
</blockquote>
<p>Also laug Fehlermeldung stimmt meine Signature von boost::function nicht. Jedoch funktioniet der aufruf &quot;f(4)&quot;</p>
<p>Bin für jeden Tipp dankbar.</p>
<p>so long<br />
jd</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/242656/callback-funktion-mit-boost-function</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 22:23:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242656.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 06 Jun 2009 15:34:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Callback-Funktion mit boost::function on Sat, 06 Jun 2009 15:34:09 GMT]]></title><description><![CDATA[<p>Hallo Gemeinde,</p>
<p>ich mache gerade einen Test für eine Callback-Funktion mit boost::function, jedoch habe ich das Problem, das die Funktions-Signatur irgendwie nicht übereinstimmt. Jedoch kann ich den Fehler nicht finden.</p>
<pre><code class="language-cpp">#include &lt;boost/function.hpp&gt; 
#include &lt;iostream&gt; 

void testCallback(int i)
{
	std::cout &lt;&lt; &quot;Callback uebergeben: &quot; &lt;&lt; i &lt;&lt; std::endl;
}

void run(int a, void (*callback)(int))
{
	callback(a);
}

int main() 
{ 
	boost::function&lt;void (int)&gt; f = testCallback;
        f(4);
	run(5, f);

	return 0;
}
</code></pre>
<p>Wenn ich in der &quot;run&quot; funktion statt f testCallback rein schreibe, funktioniert alles. Aber mit boost::function klappt das irgendwie nicht.</p>
<p>Hat da jemand einen Tipp für mich, was daran falsch ist?</p>
<p>Die Fehlermeldung:</p>
<blockquote>
<p>'run': Konvertierung des Parameters 2 von 'boost::function&lt;Signature&gt;' in 'void (__cdecl *)(int)' nicht möglich<br />
1&gt; with<br />
1&gt; [<br />
1&gt; Signature=void (int)<br />
1&gt; ]<br />
1&gt; Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden</p>
</blockquote>
<p>Also laug Fehlermeldung stimmt meine Signature von boost::function nicht. Jedoch funktioniet der aufruf &quot;f(4)&quot;</p>
<p>Bin für jeden Tipp dankbar.</p>
<p>so long<br />
jd</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722327</guid><dc:creator><![CDATA[jd]]></dc:creator><pubDate>Sat, 06 Jun 2009 15:34:09 GMT</pubDate></item><item><title><![CDATA[Reply to Callback-Funktion mit boost::function on Sat, 06 Jun 2009 15:42:43 GMT]]></title><description><![CDATA[<p>&quot;run&quot; muss als zweiten Parameter auch den Typ &quot;boost::function&lt;void(int)&gt;&quot; verlangen, bzw eine const-Referenz darauf. boost::function ist zu komplex, um es auf einen einfachen Funktionszeiger abbilden zu können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722335</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sat, 06 Jun 2009 15:42:43 GMT</pubDate></item><item><title><![CDATA[Reply to Callback-Funktion mit boost::function on Sat, 06 Jun 2009 16:03:42 GMT]]></title><description><![CDATA[<p>Super, danke so funktioniert das.</p>
<p>PS: Jetzt funktioniert das auch mit boost::bind <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722348</guid><dc:creator><![CDATA[jd]]></dc:creator><pubDate>Sat, 06 Jun 2009 16:03:42 GMT</pubDate></item></channel></rss>