<?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[std::tuple&amp;lt;void&amp;gt; verboten?]]></title><description><![CDATA[<p>Gibt es eigentlich einen guten Grund, weshalb mir mein Compiler bei</p>
<pre><code class="language-cpp">std::tuple&lt;int, void&gt; t;
</code></pre>
<p>mit einer über 80 Zeilen langen Fehlermeldung abschmiert?</p>
<p>Rein technisch müsste <code>tuple&lt;void&gt;</code> doch machbar sein.</p>
<p>Semantisch hätte ich es gerade eben gebraucht um meiner Klasse einen optionalen Member zu spendieren; gut ich habe es jetzt mit einer Spezialisierung gelöst, aber mich würden dennoch die Gründe gegen <code>tuple&lt;void&gt;</code> interessieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/316903/std-tuple-lt-void-gt-verboten</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Jul 2026 06:13:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/316903.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 20 May 2013 16:16:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:16:17 GMT]]></title><description><![CDATA[<p>Gibt es eigentlich einen guten Grund, weshalb mir mein Compiler bei</p>
<pre><code class="language-cpp">std::tuple&lt;int, void&gt; t;
</code></pre>
<p>mit einer über 80 Zeilen langen Fehlermeldung abschmiert?</p>
<p>Rein technisch müsste <code>tuple&lt;void&gt;</code> doch machbar sein.</p>
<p>Semantisch hätte ich es gerade eben gebraucht um meiner Klasse einen optionalen Member zu spendieren; gut ich habe es jetzt mit einer Spezialisierung gelöst, aber mich würden dennoch die Gründe gegen <code>tuple&lt;void&gt;</code> interessieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324756</guid><dc:creator><![CDATA[stuppi]]></dc:creator><pubDate>Mon, 20 May 2013 16:16:17 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:21:57 GMT]]></title><description><![CDATA[<p>void ist nicht DefaultConstructible</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324757</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 20 May 2013 16:21:57 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:28:28 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>void ist nicht DefaultConstructible</p>
</blockquote>
<p>Wo ist das Problem? Was nicht passt wird passend gemacht (in diesem Falle DefaultConstructible).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324759</guid><dc:creator><![CDATA[stuppi]]></dc:creator><pubDate>Mon, 20 May 2013 16:28:28 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:29:18 GMT]]></title><description><![CDATA[<p>Suchst du Boost.Optional?</p>
<p>Und wie camper bereits anmerkte, [tuple.cnstr]/3 - es muss gelten, <code>is_default_constructible&lt;T&gt;::value</code> für alle Typen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324760</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 16:29:18 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:30:36 GMT]]></title><description><![CDATA[<p>Ganz nebenbei ist void ein unvollständiger Typ, so dass es in keinem Fall als tuple-Argument verwendet werden darf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324761</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 20 May 2013 16:30:36 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:37:41 GMT]]></title><description><![CDATA[<p>stuppi schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>void ist nicht DefaultConstructible</p>
</blockquote>
<p>Wo ist das Problem? Was nicht passt wird passend gemacht (in diesem Falle DefaultConstructible).</p>
</blockquote>
<p>Die Idee eines Tupels ist es, dass von jedem Typ im Parameter-pack ein Objekt gespeichert wird. Was genau hat deine Vorstellung noch mit einem Tupel zu tun? Was soll das überhaupt bezwecken?</p>
<blockquote>
<p>Consequently, tuples are heterogeneous, fixed-size collections of values.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2324762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324762</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 16:37:41 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:39:02 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Ganz nebenbei ist void ein unvollständiger Typ, so dass es in keinem Fall als tuple-Argument verwendet werden darf.</p>
</blockquote>
<p>JETZT hab ich dich!</p>
<p>[temp.arg.type]/2 schrieb:</p>
<blockquote>
<p>A template type argument may be an incomplete type</p>
</blockquote>
<p>Edit: Ach, für Tuple speziell- schade, dann doch nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324764</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 16:39:02 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:37:32 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Die Idee eines Tupels ist es, dass von jedem Typ im Parameter-pack ein Objekt gespeichert wird. Was genau hat deine Vorstellung noch mit einem Tupel zu tun? Was soll das überhaupt bezwecken?</p>
</blockquote>
<p>Die Idee eines Tuples ist es, eine Liste von Typen kompakt zu speichern (EBO).</p>
<p>Ich könnte das zwar mit</p>
<pre><code class="language-cpp">struct Void {};
</code></pre>
<p>erreichen, aber die eine Memberfunktion soll <code>void</code> zurückgeben und nicht <code>Void</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324765</guid><dc:creator><![CDATA[stuppi]]></dc:creator><pubDate>Mon, 20 May 2013 16:37:32 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:49:29 GMT]]></title><description><![CDATA[<p>stuppi schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Die Idee eines Tupels ist es, dass von jedem Typ im Parameter-pack ein Objekt gespeichert wird. Was genau hat deine Vorstellung noch mit einem Tupel zu tun? Was soll das überhaupt bezwecken?</p>
</blockquote>
<p>Die Idee eines Tuples ist es, eine Liste von Typen kompakt zu speichern (EBO).</p>
</blockquote>
<p>Standard:</p>
<blockquote>
<p>Consequently, tuples are heterogeneous, fixed-size collections of <strong>values</strong>.</p>
</blockquote>
<p>Values. Values.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324767</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 16:49:29 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:43:30 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>Ganz nebenbei ist void ein unvollständiger Typ, so dass es in keinem Fall als tuple-Argument verwendet werden darf.</p>
</blockquote>
<p>JETZT hab ich dich!</p>
<p>[temp.arg.type]/2 schrieb:</p>
<blockquote>
<p>A template type argument may be an incomplete type</p>
</blockquote>
</blockquote>
<p>Sone vs camper<br />
<s>1 zu 42</s><br />
0 zu 42</p>
<p>----<br />
stuppie, was willste erreichen?<br />
Memberfunktionen? Rückgabe?</p>
<p>Willst du vielleicht variadic templates oder typelists?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324768</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 20 May 2013 16:43:30 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:40:15 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Sone vs camper<br />
1 zu 42</p>
</blockquote>
<p>Ne, kannst meinen Punkt wieder weg machen, er hatte schon Recht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> . Tuple speichert Werte, und void ist kein vollständiger Typ, daher...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324769</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 16:40:15 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:40:42 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Sone vs camper<br />
1 zu 42</p>
</blockquote>
<p>Ne, er hat sich gerade korrigiert.<br />
0 zu 43.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324770</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Mon, 20 May 2013 16:40:42 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:45:31 GMT]]></title><description><![CDATA[<p>Irgendwann sagt camper was falsches. Irgendwann. Wenn nicht morgen, dann vielleicht in zehn Jahren. Ich werde warten. Er ist auch nur ein Mensch. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<blockquote>
<p>Die Idee eines Tuples ist es, eine Liste von Typen kompakt zu speichern (EBO).</p>
</blockquote>
<p>Das ist hingegen irgendwie die Idee von variadic templates' template parameter packs.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324772</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 16:45:31 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:46:46 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>stuppie, was willste erreichen?<br />
Memberfunktionen? Rückgabe?</p>
<p>Willst du vielleicht variadic templates oder typelists?</p>
</blockquote>
<p>Macht in diesem abstrakten Beispiel vielleicht wenig Sinn, aber ich hätte gerne so etwas:</p>
<pre><code class="language-cpp">template &lt;typename T, typename Opt=void&gt;
struct klassemitoptionalemparameter {
  std::tuple&lt;T, Opt&gt; werte;

  Opt gibOptionalenWert() { return std::get&lt;1&gt;(werte); }
};
</code></pre>
<p>Da wäre <code>tuple&lt;void&gt;</code> halt praktisch gewesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324773</guid><dc:creator><![CDATA[stuppi]]></dc:creator><pubDate>Mon, 20 May 2013 16:46:46 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 17:14:25 GMT]]></title><description><![CDATA[<p>n3337 schrieb:</p>
<blockquote>
<p>17.6.4.8/2<br />
[...]In particular, the effects are undefined in the following cases:<br />
— if an incomplete type (3.9) is used as a template argument when instantiating a template component, <strong>unless specifically allowed</strong> for that component.</p>
</blockquote>
<p>Eine entsprechende Ausnahme für tuple existiert nicht.<br />
Genau genommen stimmt meine Aussage also nicht: Solange das tuple nicht instantiiert wird, kann void verwendet werden. Das dürfte allerdings kaum von irgendeinem Nutzen sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324774</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 20 May 2013 17:14:25 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 16:53:13 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Irgendwann sagt camper was falsches. Irgendwann. Wenn nicht morgen, dann vielleicht in zehn Jahren. Ich werde warten. Er ist auch nur ein Mensch. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
</blockquote>
<p>Hättest mich im C Forum erwischen können (ok, das war eine halbe Unwahrheit).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324775</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 20 May 2013 16:53:13 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 17:14:27 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>n3337 schrieb:</p>
<blockquote>
<p>17.6.4.28/2<br />
[...]In particular, the effects are undefined in the following cases:<br />
— if an incomplete type (3.9) is used as a template argument when instantiating a template component, <strong>unless specifically allowed</strong> for that component.</p>
</blockquote>
<p>Eine entsprechende Ausnahme für tuple existiert nicht.<br />
Genau genommen stimmt meine Aussage also nicht: Solange das tuple nicht instantiiert wird, kann void verwendet werden. Das dürfte allerdings kaum von irgendeinem Nutzen sein.</p>
</blockquote>
<p>Dir ist eine 2 in die Paragraphenangabe gerutscht (17.6.4.<strong>8</strong>).<br />
Wusste ich übrigens nicht - gut zu wissen <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>camper schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Irgendwann sagt camper was falsches. Irgendwann. Wenn nicht morgen, dann vielleicht in zehn Jahren. Ich werde warten. Er ist auch nur ein Mensch. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
</blockquote>
<p>Hättest mich im C Forum erwischen können (ok, das war eine halbe Unwahrheit).</p>
</blockquote>
<p>Von C hab ich nun mal überhaupt keine Ahnung. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324779</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 17:14:27 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 17:17:22 GMT]]></title><description><![CDATA[<p>Sone, schäm dich!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324780</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 20 May 2013 17:17:22 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Mon, 20 May 2013 17:18:08 GMT]]></title><description><![CDATA[<p>Mal theoretisch betrachtet (Stichwort algebraischer Typ) repräsentiert ein Tupel einen Produkt-Typen. Und <code>void</code> ist quasi der 0-Typ, weswegen das ganze Produkt 0 wäre.<br />
Oder anders gesagt: da man kein Objekt von Typ <code>void</code> anlegen kann, könnte man nie ein solches Tupel anlegen, weil man für den <code>void</code> -Teil nichts hätte. Tupel mit <code>void</code> machen somit keinen Sinn, man könnte gleich <code>void</code> nehmen.</p>
<p>stuppi schrieb:</p>
<blockquote>
<p>abstrakten Beispiel vielleicht wenig Sinn, aber ich hätte gerne so etwas:</p>
<pre><code class="language-cpp">template &lt;typename T, typename Opt=void&gt;
struct klassemitoptionalemparameter {
  std::tuple&lt;T, Opt&gt; werte;

  Opt gibOptionalenWert() { return std::get&lt;1&gt;(werte); }
};
</code></pre>
</blockquote>
<p>Was du hier willst, ist ein Typ, der keine inheränten Informationen besitzt. Das ist algebraisch aber nicht der 0-Typ, sondern der 1-Typ, von dem es genau ein mögliches Objekt gibt (womit ich nichts gewonnen habe, wenn ich ein Objekt dieses Typen bekomme, ich weiß ja sowieso, welches es ist).<br />
In C++ kann man einen solchen Typen repräsentieren durch <code>struct unit {};</code> , oder auch <code>std::tuple&lt;&gt;</code> .<br />
Wenn wir uns nun erinnern, dass Tupel Produkttypen sind, haben wir bei einem Tupel mit einem solchen Typen als Element eine 1 im Produkt, die den Wert nicht ändert, das Tupel hat also noch genau denselben Informationsgehalt. Und dass wir keine zusätzlichen Informationen reinbekommen, ist genau das hier Gewünschte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324781</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Mon, 20 May 2013 17:18:08 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Tue, 21 May 2013 10:36:38 GMT]]></title><description><![CDATA[<p>stuppi schrieb:</p>
<blockquote>
<p>Gibt es eigentlich einen guten Grund, weshalb mir mein Compiler bei</p>
<pre><code class="language-cpp">std::tuple&lt;int, void&gt; t;
</code></pre>
<p>mit einer über 80 Zeilen langen Fehlermeldung abschmiert?</p>
</blockquote>
<p>Gibt es eigentlich einen Grund, warum man <code>tuple&lt;int,void&gt;</code> benutzen wollen würde? Warum steht da <code>void</code> drin? Wozu soll das gut sein?</p>
<p>stuppi schrieb:</p>
<blockquote>
<p>Rein technisch müsste <code>tuple&lt;void&gt;</code> doch machbar sein.</p>
</blockquote>
<p>Ich verstehe den Sinn nicht/was dabei rauskommen soll.</p>
<p>stuppi schrieb:</p>
<blockquote>
<p>Semantisch hätte ich es gerade eben gebraucht um meiner Klasse einen optionalen Member zu spendieren;</p>
</blockquote>
<p>Verwechselst du <code>tuple&lt;int,void&gt;</code> mit <code>boost::optional&lt;int&gt;</code> ?</p>
<p>stuppi schrieb:</p>
<blockquote>
<p>aber mich würden dennoch die Gründe gegen <code>tuple&lt;void&gt;</code> interessieren.</p>
</blockquote>
<p>Warum hat ein Kreis eigentlich nicht endlich viele Ecken?<br />
Kann man nicht auch einen Kreis mit endlich vielen Ecken bauen?<br />
Sollte doch technisch machbar sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324924</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 21 May 2013 10:36:38 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Tue, 21 May 2013 10:49:28 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>stuppi schrieb:</p>
<blockquote>
<p>Rein technisch müsste <code>tuple&lt;void&gt;</code> doch machbar sein.</p>
</blockquote>
<p>Ich verstehe den Sinn nicht/was dabei rauskommen soll.</p>
</blockquote>
<p>Ich könnte mir vorstellen, daß man eine Datenstruktur baut, die tuple&lt;A,B&gt; nach A sortiert/gehasht verwaltet und drumherum zwei Wrapper, mit tuple&lt;A,B&gt; ist es eine map, mit tuple&lt;A,void&gt; nur eine set.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324929</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 21 May 2013 10:49:28 GMT</pubDate></item><item><title><![CDATA[Reply to std::tuple&amp;lt;void&amp;gt; verboten? on Tue, 21 May 2013 12:47:05 GMT]]></title><description><![CDATA[<p>Ah, ok.</p>
<p>Statt void könnte man ja mal tuple_element&lt;0,decltype(tie(ignore))&gt;::type probieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324978</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 21 May 2013 12:47:05 GMT</pubDate></item></channel></rss>