<?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[Multiple Rückgabewerte in multiple Variablen schreiben?]]></title><description><![CDATA[<p>In Python geht ja sowas hier:</p>
<pre><code>a, b, c = funktion_die_drei_werte_zurueckliefert()
</code></pre>
<p>Könnte man das in C++ nachbauen?<br />
Gibt es das vielleicht schon irgendwo in Boost oder so?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/264455/multiple-rückgabewerte-in-multiple-variablen-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 18:00:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/264455.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 Apr 2010 21:07:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Wed, 07 Apr 2010 21:07:17 GMT]]></title><description><![CDATA[<p>In Python geht ja sowas hier:</p>
<pre><code>a, b, c = funktion_die_drei_werte_zurueckliefert()
</code></pre>
<p>Könnte man das in C++ nachbauen?<br />
Gibt es das vielleicht schon irgendwo in Boost oder so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879058</guid><dc:creator><![CDATA[Lonsuder]]></dc:creator><pubDate>Wed, 07 Apr 2010 21:07:17 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Wed, 07 Apr 2010 21:08:40 GMT]]></title><description><![CDATA[<p>Sowas geht nicht.<br />
Benutze Referenzen als Parameter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879059</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Wed, 07 Apr 2010 21:08:40 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Wed, 07 Apr 2010 21:11:13 GMT]]></title><description><![CDATA[<p>Dass es nicht direkt einfach so geht, ist mir klar.<br />
Aber da lässt sich doch bestimmt mit Referenzen was tricksen, oder nicht?<br />
So in der Art:</p>
<pre><code class="language-cpp">int a, b, c;
Tuple(a, b, c) = funktionDieDreiWerteZurueckliefert();
</code></pre>
<p>und Tuple ist ein struct aus Referenzen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879060</guid><dc:creator><![CDATA[Lonsuder]]></dc:creator><pubDate>Wed, 07 Apr 2010 21:11:13 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Wed, 07 Apr 2010 21:14:07 GMT]]></title><description><![CDATA[<p>Es macht keinen Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879061</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Wed, 07 Apr 2010 21:14:07 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Wed, 07 Apr 2010 21:16:18 GMT]]></title><description><![CDATA[<p>Wieso nicht? Ich finde ein Rückgabewert sollte ein Rückgabewert sein und nicht ein Parameter, wo die Funktion dann reinschreibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879063</guid><dc:creator><![CDATA[Lonsuder]]></dc:creator><pubDate>Wed, 07 Apr 2010 21:16:18 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Wed, 07 Apr 2010 21:17:39 GMT]]></title><description><![CDATA[<p>Lonsuder schrieb:</p>
<blockquote>
<p>Wieso nicht? Ich finde ein Rückgabewert sollte ein Rückgabewert sein und nicht ein Parameter, wo die Funktion dann reinschreibt.</p>
</blockquote>
<p>Richtig, es ist <strong>ein</strong> Rückgabewert. Nicht drei Rückgabewerte.</p>
<p>Kapsel deine drei Werte in eine Struktur.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879065</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Wed, 07 Apr 2010 21:17:39 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Wed, 07 Apr 2010 21:20:26 GMT]]></title><description><![CDATA[<p>Im Prinzip tu ich das ja.<br />
Und Python liefert auch nur ein Tupel zurück.<br />
Was ich eigentlich meinte, ob man es in C++ umsetzen kann, ist das &quot;Auspacken&quot; eines Tupels in Variablen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879066</guid><dc:creator><![CDATA[Lonsuder]]></dc:creator><pubDate>Wed, 07 Apr 2010 21:20:26 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Wed, 07 Apr 2010 21:21:02 GMT]]></title><description><![CDATA[<p>Nein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879067</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Wed, 07 Apr 2010 21:21:02 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Wed, 07 Apr 2010 21:21:59 GMT]]></title><description><![CDATA[<p>Hat sich schon erledigt!<br />
Boost kann es <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><a href="http://www.boost.org/doc/libs/1_37_0/libs/tuple/doc/tuple_users_guide.html" rel="nofollow">http://www.boost.org/doc/libs/1_37_0/libs/tuple/doc/tuple_users_guide.html</a></p>
<blockquote>
<p>A tuple that contains non-const references as elements can be used to 'unpack' another tuple into variables. E.g.:</p>
<pre><code class="language-cpp">int i; char c; double d; 
tie(i, c, d) = make_tuple(1,'a', 5.5);
std::cout &lt;&lt; i &lt;&lt; &quot; &quot; &lt;&lt;  c &lt;&lt; &quot; &quot; &lt;&lt; d;
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1879068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879068</guid><dc:creator><![CDATA[Lonsuder]]></dc:creator><pubDate>Wed, 07 Apr 2010 21:21:59 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Wed, 07 Apr 2010 23:42:32 GMT]]></title><description><![CDATA[<p>Jopp, boost::tie ist kuhl <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="🙂"
    /><br />
Funktioniert netterweise auch mit std::pair zusammen, d.h. man kann's auch mit map::insert und Ähnlichem verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879101</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 07 Apr 2010 23:42:32 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Thu, 08 Apr 2010 01:20:26 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Jopp, boost::tie ist kuhl <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>cool?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879111</guid><dc:creator><![CDATA[Vollhonk]]></dc:creator><pubDate>Thu, 08 Apr 2010 01:20:26 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Thu, 08 Apr 2010 01:28:29 GMT]]></title><description><![CDATA[<p>Vollhonk schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Jopp, boost::tie ist kuhl <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>cool?</p>
</blockquote>
<p>Cool <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="😉"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1879112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879112</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Thu, 08 Apr 2010 01:28:29 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Thu, 08 Apr 2010 02:26:00 GMT]]></title><description><![CDATA[<p>FreakY&lt;3Cpp schrieb:</p>
<blockquote>
<p>Vollhonk schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Jopp, boost::tie ist kuhl <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>cool?</p>
</blockquote>
<p>Cool <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="😉"
    /> <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>
</blockquote>
<p>Genau!<br />
&quot;Kuhl&quot; ist nämlich die kuhlere Schreibweise von &quot;cool&quot;!<br />
NDR und so <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879114</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 08 Apr 2010 02:26:00 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Thu, 08 Apr 2010 06:57:19 GMT]]></title><description><![CDATA[<p>Warum nicht einfach die &quot;Rückgabewerte&quot; in Form von Referenzen als Parameter übergeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879135</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 08 Apr 2010 06:57:19 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Thu, 08 Apr 2010 07:03:04 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/17700">@Fellhuhn</a>:<br />
Hat er doch geschrieben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<p>Lonsuder schrieb:</p>
<blockquote>
<p>Ich finde ein Rückgabewert sollte ein Rückgabewert sein und nicht ein Parameter, wo die Funktion dann reinschreibt.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1879137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879137</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Thu, 08 Apr 2010 07:03:04 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Thu, 08 Apr 2010 07:35:35 GMT]]></title><description><![CDATA[<p>Naja, mit &quot;Ich finde...&quot; kann man viel fordern. <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 />
Gibt man halt zurück ob das erfolgreich war oder nicht. <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879145</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 08 Apr 2010 07:35:35 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Thu, 08 Apr 2010 08:52:11 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Naja, mit &quot;Ich finde...&quot; kann man viel fordern. <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 />
Gibt man halt zurück ob das erfolgreich war oder nicht. <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="😉"
    /></p>
</blockquote>
<p>Das sehe ich aber auch so wie Lonsuder. Wenn Du Referenzen übergibt, kannst Du zB kein const mehr benutzen:</p>
<pre><code class="language-cpp">pair&lt;Iter,Iter&gt; const range = std::equal_range(...);
//              ^^^^^
</code></pre>
<p>Alternativ:</p>
<pre><code class="language-cpp">Iter a, b; // &lt;-- ohne const
mein_equal_range(....,a,b); // referenzen übergeben
</code></pre>
<p>Gut, mit <code>tie</code> kommt's eigentlich auf das gleiche hinaus, aber wenigestens habe ich beim Aufrufen noch die Wahl:</p>
<pre><code class="language-cpp">Iter a, b;
tie(a,b) = std::equal_range(...);
</code></pre>
<p>In einer idealen Welt könnten wir Definition und Initialisierung ein einem Schritt machen. Aber dafür müsste die Sprache wahrscheinlich Tuple direkt unterstützen.</p>
<p>Tuple ist übrigens Teil der kommenden Standardbibliothek. Es gibt nicht nur make_tuple und tie, sondern auch ein pack_arguments. Mir fällt nur keine sinvolle Anwendung für pack_arguments im Moment ein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879180</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 08 Apr 2010 08:52:11 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Thu, 08 Apr 2010 09:02:00 GMT]]></title><description><![CDATA[<p>Wenn es etwas gibt auf das ich verzichten kann, dann auf const. <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879185</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 08 Apr 2010 09:02:00 GMT</pubDate></item><item><title><![CDATA[Reply to Multiple Rückgabewerte in multiple Variablen schreiben? on Thu, 08 Apr 2010 09:44:24 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Wenn es etwas gibt auf das ich verzichten kann, dann auf const. <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="😉"
    /></p>
</blockquote>
<p>War ja auch nur ein Beispiel. Das andere, stört mich etwas mehr: Dass Du erst ein Objekt im &quot;null-Zustand&quot; erzeugen musst, was dann verändert wird. Dazu müsste eine Klasse auch einen Defaultkonstruktor haben.</p>
<p>Hier noch ein Zitat von David Abrahams -- vielleicht hat das etwas mehr gewicht.</p>
<blockquote>
<p>As functional programmers like to remind us, mutation makes code more complex to reason about by undermining referential transparency and equational reasoning.</p>
</blockquote>
<p>aus <a href="http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/" rel="nofollow">seinem Blog</a>.</p>
<p>Aber am Ende ist es hauptsächlich eine Geschmacksfrage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879199</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 08 Apr 2010 09:44:24 GMT</pubDate></item></channel></rss>