<?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[Welche rückgabe bei gleichen Variablen]]></title><description><![CDATA[<p>Hallo com!</p>
<p>Wenn ich ein Funktionstemplate habe, die den größten wert zurückliefert</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
T compare(T a, T b){
	if (a&lt;b)
		return b;
	else if(b&lt;a)
		return a;
}
</code></pre>
<p>wie mache ich das dann, dass auch eine Meldung kommt, dass die Variablen gleich sind?<br />
Klar, ich könnte das machen:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
T compare(T a, T b){
	if (a&lt;b)
		return b;
	else					//bedingung weg lassen
		return a;
}
</code></pre>
<p>aber dann weiß ich nicht 100%, dass a==b ist?<br />
und die STL min-max Funktionstemplates besitzen auch keine zufriedenstellende Aussage darüber:</p>
<pre><code class="language-cpp">template &lt;class T&gt; const T&amp; max ( const T&amp; a, const T&amp; b ) {
  return (a&lt;b)?b:a;     // or: return comp(a,b)?b:a; for the comp version
}
</code></pre>
<p>Wie macht ihr das?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/302687/welche-rückgabe-bei-gleichen-variablen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 04:01:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/302687.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Apr 2012 14:20:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Welche rückgabe bei gleichen Variablen on Tue, 24 Apr 2012 14:20:55 GMT]]></title><description><![CDATA[<p>Hallo com!</p>
<p>Wenn ich ein Funktionstemplate habe, die den größten wert zurückliefert</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
T compare(T a, T b){
	if (a&lt;b)
		return b;
	else if(b&lt;a)
		return a;
}
</code></pre>
<p>wie mache ich das dann, dass auch eine Meldung kommt, dass die Variablen gleich sind?<br />
Klar, ich könnte das machen:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
T compare(T a, T b){
	if (a&lt;b)
		return b;
	else					//bedingung weg lassen
		return a;
}
</code></pre>
<p>aber dann weiß ich nicht 100%, dass a==b ist?<br />
und die STL min-max Funktionstemplates besitzen auch keine zufriedenstellende Aussage darüber:</p>
<pre><code class="language-cpp">template &lt;class T&gt; const T&amp; max ( const T&amp; a, const T&amp; b ) {
  return (a&lt;b)?b:a;     // or: return comp(a,b)?b:a; for the comp version
}
</code></pre>
<p>Wie macht ihr das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2205261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205261</guid><dc:creator><![CDATA[min-max]]></dc:creator><pubDate>Tue, 24 Apr 2012 14:20:55 GMT</pubDate></item><item><title><![CDATA[Reply to Welche rückgabe bei gleichen Variablen on Tue, 24 Apr 2012 14:31:05 GMT]]></title><description><![CDATA[<p>Normalerweise giben compare-Funktionen -1, 0, 1 zurueck (oder statt -1 und 1 irgendwelche negativen und positiven Werte).</p>
<p>Aber wenn du auch gleich das Maxiumum haben moechtest, kannst du das z.B. so machen:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
bool compare( T a, T b, T&amp; result )
{
	result = std::max( a, b );
	return a == b;
}
</code></pre>
<p>Du kannst dann diese Funktion zum Beispiel wie folgt verwenden:</p>
<pre><code class="language-cpp">int main () 
{
    int a = 10;
	int b = 10;
	int c = 0;

	if ( compare( a, b, c ) )
		cout &lt;&lt; &quot;Both are equal&quot; &lt;&lt; endl;
	else
		cout &lt;&lt; &quot;max = &quot; &lt;&lt; c &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2205265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205265</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Tue, 24 Apr 2012 14:31:05 GMT</pubDate></item><item><title><![CDATA[Reply to Welche rückgabe bei gleichen Variablen on Tue, 24 Apr 2012 14:34:38 GMT]]></title><description><![CDATA[<p>Sehr schön! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Vielen dank icarus2!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2205266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205266</guid><dc:creator><![CDATA[min-max]]></dc:creator><pubDate>Tue, 24 Apr 2012 14:34:38 GMT</pubDate></item><item><title><![CDATA[Reply to Welche rückgabe bei gleichen Variablen on Wed, 25 Apr 2012 10:05:02 GMT]]></title><description><![CDATA[<p>Sinn?<br />
Warum nicht gleich so:</p>
<pre><code class="language-cpp">int a = 10;
int b = 10;

if(a == b)
{
    cout &lt;&lt; &quot;Both are equal&quot; &lt;&lt; endl;
}
else
{
    cout &lt;&lt; &quot;max = &quot; &lt;&lt; std::max(a,b) &lt;&lt; endl;
}
</code></pre>
<p>Dann kannste auch die Art des Vergleichs immer an die Umstände anpassen, zum Beispiel für Floatingpoint-Typen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2205469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205469</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 25 Apr 2012 10:05:02 GMT</pubDate></item></channel></rss>