<?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[boost::function und einfache Funktionspointer: ambigous overload]]></title><description><![CDATA[<p>Hi,</p>
<p>wenn ich eine Funktion überlade, so dass sie verschiedene boost::function argumente nehmen kann:</p>
<pre><code class="language-cpp">class Foo {
public:
     void bar(boost::function&lt;void(int)&gt; func);
     void bar(boost::function&lt;void(float)&gt; func);
     void bar(boost::function&lt;void(const std::vector&lt;float&gt;&amp;)&gt; func);
}
</code></pre>
<p>und dann versuche, sie mit einem &quot;dummen&quot; Funktionpointer aufzurufen</p>
<pre><code class="language-cpp">void baz(float f) { std::cout &lt;&lt; &quot;float :&quot; &lt;&lt; f &lt;&lt; std::endl; }
Foo foo;
foo.bar(&amp;baz);
</code></pre>
<p>Erhalte ich folgende Fehlermeldung von gcc</p>
<pre><code>error: call of overloaded ‘bar(void (*)(float))’ is ambiguous 
note: candidates are: void Foo::bar(boost::function&lt;void(int)&gt;) 
note: void Foo::bar(boost::function&lt;void(float)&gt;) 
note: void Foo::bar(boost::function&lt;void(const std::vector&lt;float, std::allocator&lt;float&gt; &gt;&amp;)&gt;)
</code></pre>
<p>Den ersten könnte ich mir ja noch erklären (float lässt sich ja nach int konvertieren), aber wieso versucht der ein void(<em>)(float) in einen void(</em>)(const std::vector&lt;float&gt;&amp;) zu konvertieren??</p>
<p>Philipp</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/270254/boost-function-und-einfache-funktionspointer-ambigous-overload</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 10:12:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/270254.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Jul 2010 00:37:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to boost::function und einfache Funktionspointer: ambigous overload on Fri, 09 Jul 2010 00:37:04 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wenn ich eine Funktion überlade, so dass sie verschiedene boost::function argumente nehmen kann:</p>
<pre><code class="language-cpp">class Foo {
public:
     void bar(boost::function&lt;void(int)&gt; func);
     void bar(boost::function&lt;void(float)&gt; func);
     void bar(boost::function&lt;void(const std::vector&lt;float&gt;&amp;)&gt; func);
}
</code></pre>
<p>und dann versuche, sie mit einem &quot;dummen&quot; Funktionpointer aufzurufen</p>
<pre><code class="language-cpp">void baz(float f) { std::cout &lt;&lt; &quot;float :&quot; &lt;&lt; f &lt;&lt; std::endl; }
Foo foo;
foo.bar(&amp;baz);
</code></pre>
<p>Erhalte ich folgende Fehlermeldung von gcc</p>
<pre><code>error: call of overloaded ‘bar(void (*)(float))’ is ambiguous 
note: candidates are: void Foo::bar(boost::function&lt;void(int)&gt;) 
note: void Foo::bar(boost::function&lt;void(float)&gt;) 
note: void Foo::bar(boost::function&lt;void(const std::vector&lt;float, std::allocator&lt;float&gt; &gt;&amp;)&gt;)
</code></pre>
<p>Den ersten könnte ich mir ja noch erklären (float lässt sich ja nach int konvertieren), aber wieso versucht der ein void(<em>)(float) in einen void(</em>)(const std::vector&lt;float&gt;&amp;) zu konvertieren??</p>
<p>Philipp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1923638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1923638</guid><dc:creator><![CDATA[PhilippM]]></dc:creator><pubDate>Fri, 09 Jul 2010 00:37:04 GMT</pubDate></item><item><title><![CDATA[Reply to boost::function und einfache Funktionspointer: ambigous overload on Fri, 09 Jul 2010 01:41:48 GMT]]></title><description><![CDATA[<p><a href="http://www.boost.org/doc/libs/1_43_0/libs/bind/bind.html#with_function_objects" rel="nofollow">http://www.boost.org/doc/libs/1_43_0/libs/bind/bind.html#with_function_objects</a><br />
sollte dir weiterhelfen!?<br />
bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1923648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1923648</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Fri, 09 Jul 2010 01:41:48 GMT</pubDate></item></channel></rss>