<?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[spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln)]]></title><description><![CDATA[<p>nachdem ich angefangen habe mit gcc 4.3 rumzuspielen kommt hier ein kleiner leckerbissen</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

template &lt;class T&gt;
void print(const T&amp;x) {
    std::cout &lt;&lt; x &lt;&lt; ' ';
};

template &lt;class T, typename... types&gt;
void print(const T&amp; x, types... args) {
    print(x);
    print(args...);
}

template &lt;typename... types&gt;
void printLn(types... args) {
    print(args...);
    std::cout &lt;&lt; std::endl;
}

int main(int argc, char** argv) {
    printLn ( 1, 2, 3, 4, &quot;abc&quot; , .2, &quot;Lol&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/189597/spaß-mit-c-0x-oder-auch-eine-quot-tolle-quot-print-funktion-basteln</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 10:54:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189597.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Aug 2007 20:22:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln) on Tue, 14 Aug 2007 20:23:06 GMT]]></title><description><![CDATA[<p>nachdem ich angefangen habe mit gcc 4.3 rumzuspielen kommt hier ein kleiner leckerbissen</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

template &lt;class T&gt;
void print(const T&amp;x) {
    std::cout &lt;&lt; x &lt;&lt; ' ';
};

template &lt;class T, typename... types&gt;
void print(const T&amp; x, types... args) {
    print(x);
    print(args...);
}

template &lt;typename... types&gt;
void printLn(types... args) {
    print(args...);
    std::cout &lt;&lt; std::endl;
}

int main(int argc, char** argv) {
    printLn ( 1, 2, 3, 4, &quot;abc&quot; , .2, &quot;Lol&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1344623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344623</guid><dc:creator><![CDATA[ronny]]></dc:creator><pubDate>Tue, 14 Aug 2007 20:23:06 GMT</pubDate></item><item><title><![CDATA[Reply to spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln) on Tue, 14 Aug 2007 20:47:30 GMT]]></title><description><![CDATA[<p><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="👍"
    /> Ich schaue mal ob MacPorts es mittlerweile schafft den GCC 4.3 oder den Concept GCC zu installieren. Meine bisherigen Versuche sind leider immer gescheitert <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344636</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Tue, 14 Aug 2007 20:47:30 GMT</pubDate></item><item><title><![CDATA[Reply to spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln) on Tue, 14 Aug 2007 20:49:37 GMT]]></title><description><![CDATA[<p>concept gcc wäre schon spaßig,</p>
<p>nur will ich den ned selber bauen<br />
und es scheinte keine builds für meine linux distro zu geben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344638</guid><dc:creator><![CDATA[ronny]]></dc:creator><pubDate>Tue, 14 Aug 2007 20:49:37 GMT</pubDate></item><item><title><![CDATA[Reply to spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln) on Wed, 15 Aug 2007 04:40:24 GMT]]></title><description><![CDATA[<p>geiiiiiiiil</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344699</guid><dc:creator><![CDATA[OMG]]></dc:creator><pubDate>Wed, 15 Aug 2007 04:40:24 GMT</pubDate></item><item><title><![CDATA[Reply to spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln) on Wed, 15 Aug 2007 08:48:19 GMT]]></title><description><![CDATA[<p>Wollen die ernsthaft dermassen die Sprache vergewaltigen? Ellipzsen waren schon immer unschoen, und jetzt soll das noch als Template Parameter eingefuehrt werden? ich weiss ja nicht... <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344791</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 15 Aug 2007 08:48:19 GMT</pubDate></item><item><title><![CDATA[Reply to spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln) on Wed, 15 Aug 2007 08:51:55 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Wollen die ernsthaft dermassen die Sprache vergewaltigen? Ellipzsen waren schon immer unschoen, und jetzt soll das noch als Template Parameter eingefuehrt werden? ich weiss ja nicht... <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="😞"
    /></p>
</blockquote>
<p>Wie bitte? Typsichere Ellipsen sind der Traum eines jeden C++-Programmierers <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>
<p>Das einzige was an Ellipsen unschön ist, ist dass die Anzahl und Typen der Argumente nicht bekannt sind (wobei &quot;das einzige&quot; hier das Wesen der Ellipse ausmacht). Das ist bei Templateellipsen aber nicht mehr der Fall, also wo liegt das Problem? <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/1344795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344795</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 15 Aug 2007 08:51:55 GMT</pubDate></item><item><title><![CDATA[Reply to spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln) on Wed, 15 Aug 2007 22:46:23 GMT]]></title><description><![CDATA[<p>ronny schrieb:</p>
<blockquote>
<p>nachdem ich angefangen habe mit gcc 4.3 rumzuspielen kommt hier ein kleiner leckerbissen</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

template &lt;class T&gt;
void print(const T&amp;x) {
    std::cout &lt;&lt; x &lt;&lt; ' ';
};

template &lt;class T, typename... types&gt;
void print(const T&amp; x, types... args) {
    print(x);
    print(args...);
}

template &lt;typename... types&gt;
void printLn(types... args) {
    print(args...);
    std::cout &lt;&lt; std::endl;
}

int main(int argc, char** argv) {
    printLn ( 1, 2, 3, 4, &quot;abc&quot; , .2, &quot;Lol&quot;);
}
</code></pre>
</blockquote>
<p>Na der gibt aber ein Leerzeichen zu viel aus. Wie wärs mit:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

template &lt;class T&gt;
void print(const T&amp;x) {
    std::cout &lt;&lt; x;
};

template &lt;class T, typename... types&gt;
void print(const T&amp; x, types... args) {
    print(x);
    std::cout &lt;&lt; ' ';
    print(args...);
}

template &lt;typename... types&gt;
void printLn(types... args) {
    print(args...);
    std::cout &lt;&lt; std::endl;
}

int main(int argc, char** argv) {
    printLn ( 1, 2, 3, 4, &quot;abc&quot; , .2, &quot;Lol&quot;);
}
</code></pre>
<p><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>
<p>[ungetestet]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345399</guid><dc:creator><![CDATA[Mr. N]]></dc:creator><pubDate>Wed, 15 Aug 2007 22:46:23 GMT</pubDate></item><item><title><![CDATA[Reply to spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln) on Wed, 15 Aug 2007 22:49:15 GMT]]></title><description><![CDATA[<p>schöne verbesserung <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/1345401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345401</guid><dc:creator><![CDATA[ronny]]></dc:creator><pubDate>Wed, 15 Aug 2007 22:49:15 GMT</pubDate></item><item><title><![CDATA[Reply to spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln) on Wed, 15 Aug 2007 22:49:25 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Das einzige was an Ellipsen unschön ist, ist dass die Anzahl und Typen der Argumente nicht bekannt sind (wobei &quot;das einzige&quot; hier das Wesen der Ellipse ausmacht). Das ist bei Templateellipsen aber nicht mehr der Fall, also wo liegt das Problem? <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>naja, halt listen, die als (head|tail) doch wieder verfummelbar sind, scheint mir.</p>
<p>denke da an</p>
<pre><code class="language-cpp">//nur konzept, gar ungetestet
template &lt;class E&gt;
struct Len{
   const int len=1;
};
template &lt;class H, typename... T&gt;
struct Len{
   const int len=1+Len&lt;T&gt;::len;
};
...
cout&lt;&lt; Len&lt;1,3,6,5,7,&quot;hui&quot;&gt;::len ;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1345402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345402</guid><dc:creator><![CDATA[volkardus]]></dc:creator><pubDate>Wed, 15 Aug 2007 22:49:25 GMT</pubDate></item><item><title><![CDATA[Reply to spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln) on Wed, 15 Aug 2007 23:53:54 GMT]]></title><description><![CDATA[<p>integers und strings sind keine typen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345417</guid><dc:creator><![CDATA[ronny]]></dc:creator><pubDate>Wed, 15 Aug 2007 23:53:54 GMT</pubDate></item><item><title><![CDATA[Reply to spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln) on Thu, 16 Aug 2007 00:20:52 GMT]]></title><description><![CDATA[<p>ronny schrieb:</p>
<blockquote>
<p>integers und strings sind keine typen</p>
</blockquote>
<p>Was sind sie dann? Mädchen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345427</guid><dc:creator><![CDATA[WeaponX2007]]></dc:creator><pubDate>Thu, 16 Aug 2007 00:20:52 GMT</pubDate></item><item><title><![CDATA[Reply to spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln) on Thu, 16 Aug 2007 00:28:30 GMT]]></title><description><![CDATA[<p>WeaponX2007 schrieb:</p>
<blockquote>
<p>ronny schrieb:</p>
<blockquote>
<p>integers und strings sind keine typen</p>
</blockquote>
<p>Was sind sie dann? Mädchen?</p>
</blockquote>
<p>Das war oberflächlich - lies ronnys Bemerkung nochmal. Der Einwand ist ja richtig, non-type und Templateargumente werden durch typename nicht erfasst und man kann auch nicht allgemein für sie spezialisieren. Zum Glück gibt es auch dafür eine Lösung:</p>
<pre><code class="language-cpp">//1:1 aus N2242
template&lt;typename... Types&gt;
struct count {
  static const int value = sizeof...(Types);
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1345429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345429</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 16 Aug 2007 00:28:30 GMT</pubDate></item><item><title><![CDATA[Reply to spaß mit c++0x (oder auch eine &amp;quot;tolle&amp;quot; print funktion basteln) on Thu, 16 Aug 2007 00:39:14 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>WeaponX2007 schrieb:</p>
<blockquote>
<p>ronny schrieb:</p>
<blockquote>
<p>integers und strings sind keine typen</p>
</blockquote>
<p>Was sind sie dann? Mädchen?</p>
</blockquote>
<p>Das war oberflächlich - lies ronnys Bemerkung nochmal. Der Einwand ist ja richtig, non-type und Templateargumente werden durch typename nicht erfasst und man kann auch nicht allgemein für sie spezialisieren. Zum Glück gibt es auch dafür eine Lösung:</p>
<pre><code class="language-cpp">//1:1 aus N2242
template&lt;typename... Types&gt;
struct count {
  static const int value = sizeof...(Types);
};
</code></pre>
</blockquote>
<p>Ok versteh. Schaut sehr gut aus. Laut Bjarne ist der Standard ja x=9 due. Sind die template ellipsen schon fix drin?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345434</guid><dc:creator><![CDATA[WeaponX2007]]></dc:creator><pubDate>Thu, 16 Aug 2007 00:39:14 GMT</pubDate></item></channel></rss>