<?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[Rückgabewert für &amp;quot;Keine Lösung&amp;quot;]]></title><description><![CDATA[<p>Angenommen ich habe eine Funktion, die z.B. die Nullstelle einer Geraden berechnen soll. Wie teile ich dem Aufrufer mit, wenn es keine Lösung geben sollte?<br />
Mir fallen auf Anhieb vier Möglichkeiten ein:</p>
<pre><code class="language-cpp">//Möglichkeit 1:
const keine_loesung = INT_MAX;
int nullstelle(const Gerade&amp; g)
{
	//...
	if(keineNullstelle)
		return keine_loesung;
	//...
	return ergebnis;
}

//Möglichkeit 2:
bool nullstelle(cont Gerade&amp; g, int&amp; nullstelle)
{
	//...
	if(keineNullstelle)
		return false;
	nullstelle = ergebnis;
	return true;
}

//Möglichkeit 3:
class KeineNullstelle
{
	//...
}
int nullstelle(const Gerade&amp; g)
{
	//...
	if(keineNullstelle)
		throw KeineNullstelle();
	//...
	return ergebnis;
}

//Möglichkeit 4:
boost::tuple&lt;int, bool&gt; nullstelle(const Gerade&amp; g)
{
	//...
	if(keineNullstelle)
		return boost::tuple&lt;int, bool&gt;(0, false);
	//...
	return boost::tuple&lt;int, bool&gt;(ergebnis, true);
}
</code></pre>
<p>Ich denke mal, 1 und 3 kommen nicht in Frage.<br />
Wie würdet ihr es machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/260519/rückgabewert-für-quot-keine-lösung-quot</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 00:32:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/260519.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 06 Feb 2010 12:17:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 12:17:29 GMT]]></title><description><![CDATA[<p>Angenommen ich habe eine Funktion, die z.B. die Nullstelle einer Geraden berechnen soll. Wie teile ich dem Aufrufer mit, wenn es keine Lösung geben sollte?<br />
Mir fallen auf Anhieb vier Möglichkeiten ein:</p>
<pre><code class="language-cpp">//Möglichkeit 1:
const keine_loesung = INT_MAX;
int nullstelle(const Gerade&amp; g)
{
	//...
	if(keineNullstelle)
		return keine_loesung;
	//...
	return ergebnis;
}

//Möglichkeit 2:
bool nullstelle(cont Gerade&amp; g, int&amp; nullstelle)
{
	//...
	if(keineNullstelle)
		return false;
	nullstelle = ergebnis;
	return true;
}

//Möglichkeit 3:
class KeineNullstelle
{
	//...
}
int nullstelle(const Gerade&amp; g)
{
	//...
	if(keineNullstelle)
		throw KeineNullstelle();
	//...
	return ergebnis;
}

//Möglichkeit 4:
boost::tuple&lt;int, bool&gt; nullstelle(const Gerade&amp; g)
{
	//...
	if(keineNullstelle)
		return boost::tuple&lt;int, bool&gt;(0, false);
	//...
	return boost::tuple&lt;int, bool&gt;(ergebnis, true);
}
</code></pre>
<p>Ich denke mal, 1 und 3 kommen nicht in Frage.<br />
Wie würdet ihr es machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851342</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Sat, 06 Feb 2010 12:17:29 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 12:22:23 GMT]]></title><description><![CDATA[<p>Ich würde es mit bool machen.<br />
In der main funktion kannst ja dann aufrufen mit:</p>
<pre><code class="language-cpp">if( bool deineFunktion() )
    blablaabla;
else
    cout &lt;&lt; &quot; Keine Lösung&quot;;
</code></pre>
<p>So auf die Art würde ich es jetzt machen;-)</p>
<p>Aber denke ist auch situatuionsabhängig was das Programm machen soll falls es nicht klappt, bzw falls es klappt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851344</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Sat, 06 Feb 2010 12:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 12:26:29 GMT]]></title><description><![CDATA[<p>2.) Finde ich am besten. Generell sollte der rückgabewert bei komplizierteren Funktionen stets eine kontrolle sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851347</guid><dc:creator><![CDATA[JaykopX]]></dc:creator><pubDate>Sat, 06 Feb 2010 12:26:29 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 12:27:25 GMT]]></title><description><![CDATA[<p>Das heißt Möglichkeit zwei?<br />
Irgendwie muss man ja auch die Nullstelle zurückgeben (sofern es eine gibt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851348</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Sat, 06 Feb 2010 12:27:25 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 12:29:22 GMT]]></title><description><![CDATA[<p>Ja, möglichkeit 2. Wenn die Funktion false liefert, dann ist auch der Inhalt von &quot;Nullstelle&quot; nichtssagend und sollte nicht mehr verwendet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851350</guid><dc:creator><![CDATA[JaykopX]]></dc:creator><pubDate>Sat, 06 Feb 2010 12:29:22 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 12:31:10 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23399">@JaykopX</a> Danke, meine Frage war an fr33g gerichtet. Du hast ja klar gesagt, welche du vorziehst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851351</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Sat, 06 Feb 2010 12:31:10 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 12:34:54 GMT]]></title><description><![CDATA[<p>Frager schrieb:</p>
<blockquote>
<p>Wie würdet ihr es machen?</p>
</blockquote>
<p>vector zurückgeben, denn das prog wächst eh und wird bald parabeln und kreise lernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851355</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 06 Feb 2010 12:34:54 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 12:37:34 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a>: Für Nullstellen wohl die beste Lösung, aber das sollte nur ein Beispiel für eine Funktion sein, die einen &quot;speziellen&quot; Rückgabewert für &quot;keine Lösung&quot; (aber nicht &quot;Fehler&quot;) braucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851357</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Sat, 06 Feb 2010 12:37:34 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 12:39:59 GMT]]></title><description><![CDATA[<p>Frager schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23399">@JaykopX</a> Danke, meine Frage war an fr33g gerichtet. Du hast ja klar gesagt, welche du vorziehst.</p>
</blockquote>
<p>ja ich würde die nullstelle dann als referenz zurückgeben.<br />
so wies ja glaub ich in deinem vorschlag auch ist.<br />
du hast in deiner main funktion eine variable int nullstelle.<br />
so und das ergebnis deiner funktion teilst du dann der nullstelle zu.<br />
da die als referenz übergeben wird, hast du ja damit die nullstelle in deiner main funktion;-)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851359</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Sat, 06 Feb 2010 12:39:59 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 13:20:37 GMT]]></title><description><![CDATA[<p>Frager schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a>: Für Nullstellen wohl die beste Lösung, aber das sollte nur ein Beispiel für eine Funktion sein, die einen &quot;speziellen&quot; Rückgabewert für &quot;keine Lösung&quot; (aber nicht &quot;Fehler&quot;) braucht.</p>
</blockquote>
<p>Allgemein läßt sich keine Aussage machen.<br />
Nehmen wir kleine Objekte, geht meistens pair&lt;bool,Object&gt;, werden sie größer, mut vielleicht bool foo(Object&amp;) sein, Aber was ist, wenn es keine ungültigen Objekte geben kann, dann geht nur Zeiger, aber und und und. Ganz zu vergessen von Überladung mit ungültigen Werten, wie INVALID_HANDLE_VALUE, geschloseenen fstreams, 0 als Zeiger, -1 als Array-Index und so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851368</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 06 Feb 2010 13:20:37 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 13:07:23 GMT]]></title><description><![CDATA[<p>Ich finde die <code>bool</code> -Rückgabe gut. Die Anwendung ist recht einfach:</p>
<pre><code class="language-cpp">int ns;
if (nullstelle(gerade, ns))
{
    // ...
}
</code></pre>
<p>Beim Paar ist es zwar nicht viel komplizierter, ich mag es allerdings, wenn man den Rückgabewert direkt nutzen kann und nicht erst zerlegen muss.</p>
<pre><code class="language-cpp">std::pair&lt;bool, int&gt; pair = nullstelle(gerade);
if (pair.first)
{
    // ...
}
</code></pre>
<p>Eine Exception würde ich nicht verwenden und auf <code>INT_MAX</code> abzufragen finde ich auch nicht besonders sinnvoll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851376</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 06 Feb 2010 13:07:23 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 13:25:49 GMT]]></title><description><![CDATA[<p>Was spricht denn nun dagegen, Nullstellen in einer Liste (oder vergleichbares) zurueckzugeben? Eine leere Liste zeigt an, dass kein Nullstellen existieren. Da sie sowieso weiterverarbeitet werden sollen (z.B. alle NST ausgeben) kann sich die Abfrage des Rueckgabewertes gespart werden und gleich mittels for oder for_each ueber die Liste iteriert werden.</p>
<pre><code class="language-cpp">typedef std::list&lt;double&gt; Zeros // oder complex oder float oder ...

Zeroes nullstellen()
// oder ...
void nullstellen(Zeroes&amp; zs)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1851391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851391</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Sat, 06 Feb 2010 13:25:49 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 13:35:24 GMT]]></title><description><![CDATA[<blockquote>
<p>Was spricht denn nun dagegen, Nullstellen in einer Liste (oder vergleichbares) zurueckzugeben?</p>
</blockquote>
<p>Nichts. (nur sind die Nullstellen wie gesagt nur ein Beispiel)<br />
Würdest du auch einen Container verwenden, wenn maximal 1 Element zurückgegeben wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851395</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Sat, 06 Feb 2010 13:35:24 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 13:39:07 GMT]]></title><description><![CDATA[<p>Frager schrieb:</p>
<blockquote>
<p>Würdest du auch einen Container verwenden, wenn maximal 1 Element zurückgegeben wird?</p>
</blockquote>
<p>Wäre mir mit Standard-Containern zu teuer.<br />
Aber ich muß es mal testen. Einen Container für 0 oder 1 Element habe ich noch rumliegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851399</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 06 Feb 2010 13:39:07 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 13:45:30 GMT]]></title><description><![CDATA[<p>Frager schrieb:</p>
<blockquote>
<blockquote>
<p>Was spricht denn nun dagegen, Nullstellen in einer Liste (oder vergleichbares) zurueckzugeben?</p>
</blockquote>
<p>Nichts. (nur sind die Nullstellen wie gesagt nur ein Beispiel)<br />
Würdest du auch einen Container verwenden, wenn maximal 1 Element zurückgegeben wird?</p>
</blockquote>
<p>In Haskell wird es so gemacht. Zwar gibt es Maybe, aber meist greift man doch auf [] bzw. [a] zurueck.</p>
<blockquote>
<p>Aber ich muß es mal testen. Einen Container für 0 oder 1 Element habe ich noch rumliegen.</p>
</blockquote>
<p>Naja, es gibt auch Maybe fuer C++, aber da haengt dann aber noch der ganze Monadkram dran.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851404</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Sat, 06 Feb 2010 13:45:30 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 13:47:55 GMT]]></title><description><![CDATA[<p>[quote=volkard]Einen Container für 0 oder 1 Element habe ich noch rumliegen.[/quote]<br />
Was ist mit <a href="http://www.boost.org/doc/libs/1_41_0/libs/optional/doc/html/index.html" rel="nofollow">boost::optional</a>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851408</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Sat, 06 Feb 2010 13:47:55 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 14:10:36 GMT]]></title><description><![CDATA[<p>Frager schrieb:</p>
<blockquote>
<p>Was ist mit <a href="http://www.boost.org/doc/libs/1_41_0/libs/optional/doc/html/index.html" rel="nofollow">boost::optional</a>?</p>
</blockquote>
<p>Das ist genau für solche Fälle gemacht <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1851421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851421</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sat, 06 Feb 2010 14:10:36 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 14:34:26 GMT]]></title><description><![CDATA[<p>Ja, scheint so, als ob optional&lt;T&gt; die boost-Antwort auf Maybe bzw. [a] und [] ist. Leider spare ich mir trotzdem nicht die if-Abfrage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851438</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Sat, 06 Feb 2010 14:34:26 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 14:36:25 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Leider spare ich mir trotzdem nicht die if-Abfrage.</p>
</blockquote>
<p>Kann man sich die überhaupt sparen? Denn es muss ja ein anderer Ablaufpfad eingeschlagen werden, abhängig davon, ob die Funktion Nullstellen hat oder nicht. (Ich möchte jetzt nicht auf If-Workarounds wie Funktionszeiger oder sowas hinaus).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851439</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 06 Feb 2010 14:36:25 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 14:45:33 GMT]]></title><description><![CDATA[<p>Ok, das scheint mir für viele Fälle die &quot;schönste&quot; Lösung zu sein. Danke für die Antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851451</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Sat, 06 Feb 2010 14:45:33 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 15:14:45 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Kann man sich die überhaupt sparen? Denn es muss ja ein anderer Ablaufpfad eingeschlagen werden, abhängig davon, ob die Funktion Nullstellen hat oder nicht. (Ich möchte jetzt nicht auf If-Workarounds wie Funktionszeiger oder sowas hinaus).</p>
</blockquote>
<p>Wenn man z.B. mehrere Rueckgabewerte hat, dann will man diese fuer gewoehlich weiterverarbeiten. Tu was mit allen Nullstelln, Tu was mit allen Matches des regulaeren Ausdrucks, ... Im einfachsten Fall moechte man diese erst mal ausgeben, also for*( it = matches.begin(); it != matches.end(); ++it)* oder mittels <em>std::for_each(...)</em>. Ist jetzt der Container aber leer, so passiert gar nichts. Bei der Variante mit expliziten Rueckgabewert, <em>std::pair</em> oder <em>boost::optional</em> muss dieser erst geprueft werden. Diese Pruefung ist natuerl auch in der Variante mit for enthalten, aber sie ist implizit und muss nicht hingeschrieben werden. Und bei allem, was ich nicht dasteht, kann ich auch keine Fehler machen. Der Code hat etwas weniger Rauschen (Laerm, noise). Performanceunterschiede wird es wohl nicht geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851465</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Sat, 06 Feb 2010 15:14:45 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 16:05:17 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Frager schrieb:</p>
<blockquote>
<p>Was ist mit <a href="http://www.boost.org/doc/libs/1_41_0/libs/optional/doc/html/index.html" rel="nofollow">boost::optional</a>?</p>
</blockquote>
<p>Das ist genau für solche Fälle gemacht <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>
</blockquote>
<p>Mag sein, aber es ist verboostelt und damit für mich indiskutabel.<br />
Außerdem wollte ich einen CONTAINER, also mit begin() und end() bzw mit content().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851497</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 06 Feb 2010 16:05:17 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 17:37:24 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Mag sein, aber es ist verboostelt und damit für mich indiskutabel.</p>
</blockquote>
<p>Klingt nach ner emotionalen Entscheidung, die imo nichts bei der Wahl der Mittel für sowas zu suchen hat. Es sei denn &quot;verboostelt&quot; heißt sowas wie &quot;zu allgemein und daher mit performance-overhead&quot;.</p>
<p>volkard schrieb:</p>
<blockquote>
<p>Außerdem wollte ich einen CONTAINER, also mit begin() und end() bzw mit content().</p>
</blockquote>
<p>Der OP wollte aber keinen Container sondern nur eine Möglichkeit, zusätzlich zur Menge der möglichen einzelnen Lösungen den Wert &quot;keine Lösung&quot; auszudrücken. Von begin(), end() etc. war nie wirklich die Rede.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851550</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sat, 06 Feb 2010 17:37:24 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 17:55:58 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Mag sein, aber es ist verboostelt und damit für mich indiskutabel.</p>
</blockquote>
<p>Klingt nach ner emotionalen Entscheidung, die imo nichts bei der Wahl der Mittel für sowas zu suchen hat. Es sei denn &quot;verboostelt&quot; heißt sowas wie &quot;zu allgemein und daher mit performance-overhead&quot;.</p>
<p>volkard schrieb:</p>
<blockquote>
<p>Außerdem wollte ich einen CONTAINER, also mit begin() und end() bzw mit content().</p>
</blockquote>
<p>Der OP wollte aber keinen Container sondern nur eine Möglichkeit, zusätzlich zur Menge der möglichen einzelnen Lösungen den Wert &quot;keine Lösung&quot; auszudrücken. Von begin(), end() etc. war nie wirklich die Rede.</p>
</blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Frager schrieb:</p>
<blockquote>
<p>Würdest du auch einen Container verwenden, wenn maximal 1 Element zurückgegeben wird?</p>
</blockquote>
<p>Wäre mir mit Standard-Containern zu teuer.<br />
Aber ich muß es mal testen. Einen Container für 0 oder 1 Element habe ich noch rumliegen.</p>
</blockquote>
<p>Frager schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Einen Container für 0 oder 1 Element habe ich noch rumliegen.</p>
</blockquote>
<p>Was ist mit <a href="http://www.boost.org/doc/libs/1_41_0/libs/optional/doc/html/index.html" rel="nofollow">boost::optional</a>?</p>
</blockquote>
<p>pumuckl schrieb:</p>
<blockquote>
<p>Frager schrieb:</p>
<blockquote>
<p>Was ist mit <a href="http://www.boost.org/doc/libs/1_41_0/libs/optional/doc/html/index.html" rel="nofollow">boost::optional</a>?</p>
</blockquote>
<p>Das ist genau für solche Fälle gemacht <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>
</blockquote>
<p>Klingt danach, als sei boost genau für solche Fälle gemacht, wo man einen kleinen Container haben will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851557</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 06 Feb 2010 17:55:58 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 18:16:16 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Klingt danach, als sei boost genau für solche Fälle gemacht, wo man einen kleinen Container haben will.</p>
</blockquote>
<p>Du hast den Container aufgebracht mit dem Argument dass später irgendwann mal eh mehrere Ergebnisse zurückgegeben werden müssten.<br />
boost::optional ist eben <em>kein</em> wirklicher container (was du ja bemängelt hast, weils kein begin() und end() dabei ist), sondern eine Lösung für die Situationen wo ein Container overkill wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851563</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sat, 06 Feb 2010 18:16:16 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabewert für &amp;quot;Keine Lösung&amp;quot; on Sat, 06 Feb 2010 18:19:58 GMT]]></title><description><![CDATA[<p>Ich trage nach, daß darüberhinaus ein Container recht sinnig ist, weil er auf natürliche Weise ausdrückt, daß es keine oder eine Lösung gibt. So, wie man im Schulunterricht immer eine Lösungsmenge, die gegebenenfalls leer ist, als Ergebnis hinschreiben soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851565</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 06 Feb 2010 18:19:58 GMT</pubDate></item></channel></rss>