<?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[Funkoren&#x2F;Funktionen als Parameter]]></title><description><![CDATA[<p>Hi,<br />
Folgende Ausgangsituation:</p>
<p>Ich habe eine Überladene Funktion<br />
rand();<br />
rand(int);</p>
<p>und in einer Klasse eine Member Templatefunktion, der ein RND-Generator als Funktor/Funktion übergeben werden soll:</p>
<p>template &lt;class RanomNumberGen&gt;<br />
shuffle(RanomNumberGen rand);</p>
<p>Allerdings meckert beim aufruf von shuffle</p>
<pre><code class="language-cpp">Klassse x;
  x.shuffle(&amp;rand);
</code></pre>
<p>Der kompiler, dass die Funktion rand ambiguous ist.<br />
Wie kannich den Kompiler sagen, dass ich die 2. Variante meine.<br />
x.shuffle(&amp;rand(int));<br />
funktioniert leider nicht.</p>
<p>Schon mal Danke für eure Hilfe.<br />
Vlad</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/224500/funkoren-funktionen-als-parameter</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 14:56:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/224500.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Oct 2008 12:18:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funkoren&#x2F;Funktionen als Parameter on Fri, 10 Oct 2008 12:18:24 GMT]]></title><description><![CDATA[<p>Hi,<br />
Folgende Ausgangsituation:</p>
<p>Ich habe eine Überladene Funktion<br />
rand();<br />
rand(int);</p>
<p>und in einer Klasse eine Member Templatefunktion, der ein RND-Generator als Funktor/Funktion übergeben werden soll:</p>
<p>template &lt;class RanomNumberGen&gt;<br />
shuffle(RanomNumberGen rand);</p>
<p>Allerdings meckert beim aufruf von shuffle</p>
<pre><code class="language-cpp">Klassse x;
  x.shuffle(&amp;rand);
</code></pre>
<p>Der kompiler, dass die Funktion rand ambiguous ist.<br />
Wie kannich den Kompiler sagen, dass ich die 2. Variante meine.<br />
x.shuffle(&amp;rand(int));<br />
funktioniert leider nicht.</p>
<p>Schon mal Danke für eure Hilfe.<br />
Vlad</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1596918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1596918</guid><dc:creator><![CDATA[vlad_tepesch]]></dc:creator><pubDate>Fri, 10 Oct 2008 12:18:24 GMT</pubDate></item><item><title><![CDATA[Reply to Funkoren&#x2F;Funktionen als Parameter on Fri, 10 Oct 2008 12:23:51 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">x.shuffle&lt;int(*)(int)&gt;(&amp;rand);
//oder
x.shuffle(static_cast&lt;int(*)(int)&gt;(&amp;rand));
</code></pre>
<p>Wobei ich das erste vorziehen würde.</p>
<p>Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1596923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1596923</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Fri, 10 Oct 2008 12:23:51 GMT</pubDate></item><item><title><![CDATA[Reply to Funkoren&#x2F;Funktionen als Parameter on Fri, 10 Oct 2008 12:24:01 GMT]]></title><description><![CDATA[<p>Vielleicht hilft explizit das Template Argument anzugeben.<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1596924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1596924</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Fri, 10 Oct 2008 12:24:01 GMT</pubDate></item><item><title><![CDATA[Reply to Funkoren&#x2F;Funktionen als Parameter on Fri, 10 Oct 2008 12:35:50 GMT]]></title><description><![CDATA[<p>ok, Danke! Hätte man auch selbst drauf kommen können. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Noch was:<br />
Wie kann ich für diese Funktion auch ein standard Parameter festlegen?</p>
<pre><code class="language-cpp">template &lt;class RanomNumberGen&gt; 
shuffle(RanomNumberGen rand=MyRND()); 

//Aufruf:
x.shuffle();
</code></pre>
<p>geht leider nicht, ohne x.shuffle&lt;MyRND&gt;(); obwohl das templateargument ja bekannt sein sollte.<br />
Oder mus ich da eine Templatelose funktion hinzufügen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1596933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1596933</guid><dc:creator><![CDATA[vlad_tepesch]]></dc:creator><pubDate>Fri, 10 Oct 2008 12:35:50 GMT</pubDate></item><item><title><![CDATA[Reply to Funkoren&#x2F;Funktionen als Parameter on Fri, 10 Oct 2008 12:44:34 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template &lt;class RanomNumberGen&gt;
shuffle(RanomNumberGen rand=RanomNumberGen());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1596938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1596938</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 10 Oct 2008 12:44:34 GMT</pubDate></item><item><title><![CDATA[Reply to Funkoren&#x2F;Funktionen als Parameter on Fri, 10 Oct 2008 12:48:46 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template &lt;class RanomNumberGen&gt;
shuffle(RanomNumberGen rand=RanomNumberGen());
</code></pre>
<p>Ich möchte ja aber, dass man schreiben kann:<br />
x.shuffle(); // kompatibilität zu vorhandenen Code;<br />
und nicht<br />
x.shuffle&lt;MyRND&gt;();</p>
<p>aber dann wahrscheinlich einfach eine templatelose memberfunction:</p>
<pre><code class="language-cpp">void shuffle()
{
  shuffle&lt;MyRND&gt;();
};
</code></pre>
<p>Ich dacht halt, dass kann man sich vielleicht irgendwie sparen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1596941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1596941</guid><dc:creator><![CDATA[vlad_tepesch]]></dc:creator><pubDate>Fri, 10 Oct 2008 12:48:46 GMT</pubDate></item><item><title><![CDATA[Reply to Funkoren&#x2F;Funktionen als Parameter on Fri, 10 Oct 2008 13:21:22 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template &lt;class RanomNumberGen = MyRND&gt;
shuffle(RanomNumberGen rand=RanomNumberGen());
</code></pre>
<p>Dann war meine erste Version doch das, was du wolltest. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
(habs relativ schnell wegeditiert, weil ich dachte, dass du einen WERT haben willst..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1596960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1596960</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 10 Oct 2008 13:21:22 GMT</pubDate></item></channel></rss>