<?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[Sone (Hacker) erklärt die Welt (C++11). War: C++ auto]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9960">@pumuckl</a>: GCC ist doch viel weiter vorn als MSVC, das weißt du doch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Das ganze (+ <code>decltype</code> ) nennt sich automatic type deduction (engl. für automatische Typ-Deduzierung), falls der TE es wissen möchte.</p>
<blockquote>
<blockquote>
<ol start="3">
<li>Wann würdet ihr &quot;auto&quot; verwenden?</li>
</ol>
</blockquote>
<p>Wann immer möglich.</p>
</blockquote>
<p>Dem kann ich leider nicht ganz Zustimmen. Mir ist es gerade bei APIs oder Libs in die ich einsteige sehr wichtig, zu sehen, welchen Typ mir eine Funktion gegeben hat:</p>
<pre><code class="language-cpp">auto system = createLODAnimationState(mAnimPtr);//So eine Funktion macht natürlich wenig Sinn, aber es geht um den Namen
</code></pre>
<p>hier könnte ich unmöglich erkennen, welche Klasse zurückgegeben wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> ich muss entweder daneben schreiben, welchen Typ <code>system</code> jetzt hat oder jedes mal die API-Referenz aufsuchen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></p>
<p>Oder ich schreibe einfach, weil ich nicht so faul bin, Zehn oder 15 Zeichen dahin und habe was ich will.</p>
<p>Also bei Standardbibliotheks-Membermethoden oder -Funktionen gerne, aber nicht bei fremden Zeug.</p>
<p>Mit aller Sicherheit hab ich aber hier einen Denkfehler, und zig Leute werden mir jetzt erklären warum meine Erklärung doof war <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>Edit:</p>
<blockquote>
<p>Explizite initialisierung</p>
</blockquote>
<p>Das heißt, eine Variable gleich mit einem Funktions-Rückgabewert initialisieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306086/sone-hacker-erklärt-die-welt-c-11-war-c-auto</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 03:47:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306086.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 15 Jul 2012 17:38:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Sun, 15 Jul 2012 17:41:18 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9960">@pumuckl</a>: GCC ist doch viel weiter vorn als MSVC, das weißt du doch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Das ganze (+ <code>decltype</code> ) nennt sich automatic type deduction (engl. für automatische Typ-Deduzierung), falls der TE es wissen möchte.</p>
<blockquote>
<blockquote>
<ol start="3">
<li>Wann würdet ihr &quot;auto&quot; verwenden?</li>
</ol>
</blockquote>
<p>Wann immer möglich.</p>
</blockquote>
<p>Dem kann ich leider nicht ganz Zustimmen. Mir ist es gerade bei APIs oder Libs in die ich einsteige sehr wichtig, zu sehen, welchen Typ mir eine Funktion gegeben hat:</p>
<pre><code class="language-cpp">auto system = createLODAnimationState(mAnimPtr);//So eine Funktion macht natürlich wenig Sinn, aber es geht um den Namen
</code></pre>
<p>hier könnte ich unmöglich erkennen, welche Klasse zurückgegeben wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> ich muss entweder daneben schreiben, welchen Typ <code>system</code> jetzt hat oder jedes mal die API-Referenz aufsuchen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></p>
<p>Oder ich schreibe einfach, weil ich nicht so faul bin, Zehn oder 15 Zeichen dahin und habe was ich will.</p>
<p>Also bei Standardbibliotheks-Membermethoden oder -Funktionen gerne, aber nicht bei fremden Zeug.</p>
<p>Mit aller Sicherheit hab ich aber hier einen Denkfehler, und zig Leute werden mir jetzt erklären warum meine Erklärung doof war <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>Edit:</p>
<blockquote>
<p>Explizite initialisierung</p>
</blockquote>
<p>Das heißt, eine Variable gleich mit einem Funktions-Rückgabewert initialisieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233005</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 15 Jul 2012 17:41:18 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Sun, 15 Jul 2012 17:49:42 GMT]]></title><description><![CDATA[<p>Die Argumentation leuchtet mir nicht ein. Wenn du</p>
<pre><code class="language-cpp">foo(bar());
</code></pre>
<p>schreibst, machst du dir auch keine Gedanken darum, was bar zurückgibt, solange es in foo passt. Ob du jetzt in der Dokumentation erst die Funktion oder gleich den Typ nachschlägst, ist letztendlich egal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233010</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Sun, 15 Jul 2012 17:49:42 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Sun, 15 Jul 2012 17:49:43 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Mit aller Sicherheit hab ich aber hier einen Denkfehler, und zig Leute werden mir jetzt erklären warum meine Erklärung doof war <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>
</blockquote>
<p>Naja, bei Visual Studio kann man mit der Maus über die Funktion drüberfahren und mit etwas Glück sieht man die Signatur und den Rückgabewert. Aber generell geb ich dir schon Recht. &quot;auto&quot; ist zwar meist etwas schneller zu schreiben, aber sonst ist es besser lesbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233011</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Sun, 15 Jul 2012 17:49:43 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Sun, 15 Jul 2012 18:46:47 GMT]]></title><description><![CDATA[<p>seldon schrieb:</p>
<blockquote>
<p>Die Argumentation leuchtet mir nicht ein. Wenn du</p>
<pre><code class="language-cpp">foo(bar());
</code></pre>
<p>schreibst, machst du dir auch keine Gedanken darum, was bar zurückgibt,</p>
</blockquote>
<p>Ist dein Beispiel dasselbe wie das meinige? Nein. In meinem wird ein Funktionsrückgabewert als initializer verwendet.</p>
<p>Was ich spezifischer meine sind auch alte Codes, die man sich ansieht.</p>
<pre><code class="language-cpp">Ogre::Vector3 foo = mCamera-&gt;getRayForwardIntersect(anch, &amp;dir, offset);
</code></pre>
<p>Sogar hier kann ich schon nur den Sinn dieser Metasyntaktischen (oder später auch normalen lokalen) Variable durch den Kontext erkennen. Vielleicht gibt getRay...() ja auch einen Skalar zurück, usw., <code>auto</code> da zu benutzen macht für mich Null Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233021</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 15 Jul 2012 18:46:47 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Sun, 15 Jul 2012 18:53:47 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Vielleicht gibt getRay...() ja auch einen Skalar zurück, usw.,</p>
</blockquote>
<p>Nen ziemlich eindimensionaler Ray.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233022</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 15 Jul 2012 18:53:47 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Sun, 15 Jul 2012 20:46:27 GMT]]></title><description><![CDATA[<p>Mechanics schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Mit aller Sicherheit hab ich aber hier einen Denkfehler, und zig Leute werden mir jetzt erklären warum meine Erklärung doof war <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>
</blockquote>
<p>Naja, bei Visual Studio kann man mit der Maus über die Funktion drüberfahren und mit etwas Glück sieht man die Signatur und den Rückgabewert.</p>
</blockquote>
<p>Mit Intellisense, unter MSVC, habe ich leider mittelgute bis unausreichende Erfahrung gemacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233049</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sun, 15 Jul 2012 20:46:27 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Sun, 15 Jul 2012 21:12:52 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Vielleicht gibt getRay...() ja auch einen Skalar zurück, usw.,</p>
</blockquote>
<p>Nen ziemlich eindimensionaler Ray.</p>
</blockquote>
<p>Das war ein Beispiel, du alter S***. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233052</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 15 Jul 2012 21:12:52 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Mon, 16 Jul 2012 04:11:31 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Das war ein Beispiel, du alter S***. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Jup, und dennoch steckt ein Stückchen Wahrheit drin: Bei den meisten Funktionen sagt der Name schon in etwa, was sie zurückgeben, wie z.B. hier, dass es eben kein Skalar ist. Wenn man die Variable jetzt nicht foo nennt sondern einen passenden Namen vergibt, dann ist der auch aussagekräftig genug, um in etwa auf den Typ schließen zu können. Die grobe Typ<em>kategorie</em> (Container von irgendwas, Iterator, mehrdimensionaler Vector usw.) kann man normalerweise gut im Namen der Variablen ausdrücken, den exakten Typ braucht man normalerweise nicht zu wissen - dafür ist auto eben gut.</p>
<p>Sone schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9960">@pumuckl</a>: GCC ist doch viel weiter vorn als MSVC, das weißt du doch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Dass er das grundsätzlich ist weiß ich. Ob das auch bei jedem einzelnen Feature so ist, das im MSVC11 umgesetzt wurde, hab ich &quot;versäumt&quot; nachzulesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233068</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 16 Jul 2012 04:11:31 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Mon, 16 Jul 2012 11:12:15 GMT]]></title><description><![CDATA[<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>Hallo,<br />
ich habe das Schlüsselwort &quot;auto&quot; eigentlich nie gebrauchen müssen, allerdings würde ich gerne wissen, wann man es verwenden, und wann nicht, sollte.</p>
</blockquote>
<p><a href="http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/C-11-VC-11-and-Beyond" rel="nofollow">Hier</a> kannst du noch sehen, was Herb Sutter dazu sagt. (Minute 16 bis Minute 23)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233161</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Jul 2012 11:12:15 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Mon, 16 Jul 2012 23:57:25 GMT]]></title><description><![CDATA[<p>Naja, der Name, der Name... ob ich jetzt den Namen lang hab oder den Typ ist doch wurscht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233256</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 16 Jul 2012 23:57:25 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Tue, 17 Jul 2012 06:52:32 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Naja, der Name, der Name... ob ich jetzt den Namen lang hab oder den Typ ist doch wurscht.</p>
</blockquote>
<p>Nope. Der Name sollte aussagekräftig sein. auto ist <em>nicht</em> dazu gedacht, dir Tipparbeit zu sparen, sondern es ist dazu gedacht, redundante Typangaben zu vermeiden. Dass man dadurch oft auch Tipparbeit spart ist nur ein netter Nebeneffekt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233371</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 17 Jul 2012 06:52:32 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Tue, 17 Jul 2012 08:29:17 GMT]]></title><description><![CDATA[<p>Du meinst, die Typangabe ist insofern redundant, da man sich den Typ auch ungefähr vom Namen oder dem Initializer her ableiten kann. Gut, gut, da hast du Recht.</p>
<p>Trotzdem wirst du mir zustimmen dass das höchstens bei Klassen gut ist, weil es recht bescheuert wäre (laut deiner Logik aber sinnvoll da es eine redundante Typangabe ist!)</p>
<pre><code class="language-cpp">auto a(4);//das anstatt
int a(4); //dem zu schreiben
auto b = {1, 2, 5, 8};//Ist das jetzt eine Initializerlist oder ein C-Style Array?
int b[] = {1, 2, 5, 8};//Keine Frage
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2233386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233386</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 17 Jul 2012 08:29:17 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Tue, 17 Jul 2012 08:37:58 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>auto ist <em>nicht</em> dazu gedacht, dir Tipparbeit zu sparen, sondern es ist dazu gedacht, redundante Typangaben zu vermeiden.</p>
</blockquote>
<p>Das würde ich anders formulieren. Und im Motivationsabschnitt des auto-Proposals tauchen sicherlich auch extrem lange Iterator-Typen auf, die man nicht wirklich hinschreiben will. Um das Sparen von Tipparbeit geht's also auch. Bei &quot;redundante Typangaben&quot; fällt mir spontan nur</p>
<pre><code class="language-cpp">auto sp = make_shared&lt;Thing&gt;(42);
</code></pre>
<p>ein, wo es klar sein sollte, dass sp ein shared_ptr&lt;Thing&gt; ist. Aber oft weiß man den Typ ja gar nicht genau (z.B. Lambdas, std::bind-Ergebnis u.s.w.). auto erlaubt da auch ein besseres generic programming:</p>
<pre><code class="language-cpp">template&lt;class T&gt;
void show(T const&amp; c)
{
  auto it = begin(c);
  auto ee = end(c);
  // Was ist decltype(it)? Keine Ahnung
  // Ggf gibt es den Typ T::const_iterator
  // Ggf auch nicht (bei rohen Arrays)
  while (it!=ee) {
    cout &lt;&lt; *it &lt;&lt; ' ';
    ++it;
  }
}
</code></pre>
<p>auto eilt also zur Hilfe, wenn man den Typen nicht explizit hinschreiben will oder kann.</p>
<p>Ich weiß aber auch noch nicht, wie schlau es ist, auto auch dann einzusetzen, wenn ich den Typen auch selbst kurz hätte hinschreiben können. Ich denke, wenn vom Kontext nicht klar ist, was für eine <em>Art</em> von Typ eine &quot;auto-Variable&quot; hat, dann macht man es dem Leser eventuell unnötig schwer, das Programm nachzuvollziehen. Aber irgendwie arrangieren sich die Nutzer von dynamischen Sprachen ja auch damit, in denen ganz selten mal Typen explizit genannt werden -- wobei mich das aber eigentlich ein bisschen stört.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233388</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 17 Jul 2012 08:37:58 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Tue, 17 Jul 2012 09:03:05 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<pre><code class="language-cpp">auto a(4);//das anstatt
int a(4); //dem zu schreiben
auto b = {1, 2, 5, 8};//Ist das jetzt eine Initializerlist oder ein C-Style Array?
int b[] = {1, 2, 5, 8};//Keine Frage
</code></pre>
</blockquote>
<p>Suuuuper Beispiele, ganz grosses Kino, nein ... wirklich ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233395</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 17 Jul 2012 09:03:05 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Tue, 17 Jul 2012 09:04:29 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<pre><code class="language-cpp">auto a(4);//das anstatt
int a(4); //dem zu schreiben
auto b = {1, 2, 5, 8};//Ist das jetzt eine Initializerlist oder ein C-Style Array?
int b[] = {1, 2, 5, 8};//Keine Frage
</code></pre>
</blockquote>
<p>Mir fehlt da noch ein</p>
<pre><code class="language-cpp">auto c[] = { 2, 3, 5 };
</code></pre>
<p>.. kommt ja vielleicht mit dem nächsten Standard.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233396</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 17 Jul 2012 09:04:29 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Tue, 17 Jul 2012 10:50:47 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<pre><code class="language-cpp">auto a(4);//das anstatt
int a(4); //dem zu schreiben
auto b = {1, 2, 5, 8};//Ist das jetzt eine Initializerlist oder ein C-Style Array?
int b[] = {1, 2, 5, 8};//Keine Frage
</code></pre>
</blockquote>
<p>Suuuuper Beispiele, ganz grosses Kino, nein ... wirklich ...</p>
</blockquote>
<p>??? Was zum Teufel war daran jetzt schlecht? Bei Skalaren ist es doch wirklich ein wenig unnötig, den Typ anhand des Literals o. ä. deduzieren zu lassen. Eben so bei C-Arrays. Das wollte ich damit nur sagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233430</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 17 Jul 2012 10:50:47 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Tue, 17 Jul 2012 11:25:52 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;vector&gt;
#include &lt;tuple&gt;

int main (){
    std::vector&lt;std::tuple&lt;std::string,std::string,std::string&gt;&gt; v;
    std::vector&lt;std::tuple&lt;std::string,std::string,std::string&gt;&gt;::const_iterator it=v.cbegin();
    auto it2=v.cbegin();
}
</code></pre>
<p>Will man ernsthaft sowas tippen?</p>
<p>Für einfache <code>ints</code> ist es aber unnötig.. Da habt ihr schon recht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233442</guid><dc:creator><![CDATA[Nymer]]></dc:creator><pubDate>Tue, 17 Jul 2012 11:25:52 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Tue, 17 Jul 2012 11:25:53 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::vector&lt;std::tuple&lt;std::string,std::string,std::string&gt;&gt;
</code></pre>
<p>Wer zum Teufel hat so einen Container? <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="😃"
    /><br />
Dann würde ich mir schon eine Datenstruktur schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233444</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 17 Jul 2012 11:25:53 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Tue, 17 Jul 2012 12:14:00 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<pre><code class="language-cpp">auto b = {1, 2, 5, 8};//Ist das jetzt eine Initializerlist oder ein C-Style Array?
</code></pre>
</blockquote>
<p>Falls das eine ernste Frage war: decltype(b) wird std::initializer_list&lt;int&gt; sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233461</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 17 Jul 2012 12:14:00 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Tue, 17 Jul 2012 12:40:22 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<pre><code class="language-cpp">auto b = {1, 2, 5, 8};//Ist das jetzt eine Initializerlist oder ein C-Style Array?
</code></pre>
</blockquote>
<p>Falls das eine ernste Frage war: decltype(b) wird std::initializer_list&lt;int&gt; sein.</p>
</blockquote>
<p>Sowas liebe ich: quasi zitiert, aber so tun, als ob dass Allgemeinwissen sei, und jeder wissen müsste.</p>
<p>C++11 schrieb:</p>
<blockquote>
<p>7.1.6.4 auto specifier<br />
6 Once the type of a declarator-id has been determined according to 8.3, the type of the declared variable using the declarator-id is determined from the type of its initializer using the rules for template argument deduction. Let T be the type that has been determined for a variable identifier d. Obtain P from T by replacing the occurrences of auto with either a new invented type template parameter U or, if the initializer is a braced-init-list (8.5.4), with std::initializer_list&lt;U&gt;. The type deduced for the variable d is then the deduced A determined using the rules of template argument deduction from a function call (14.8.2.1), where P is a function template parameter type and the initializer for d is the corresponding argument. If the deduction fails, the declaration is ill-formed. [ Example:<br />
`  auto x1 = { 1, 2 }; // decltype(x1) is std::initializer_list&lt;int&gt;</p>
<p>auto x2 = { 1, 2.0 }; // error: cannot deduce element type`<br />
—end example ]</p>
</blockquote>
<p>Wenig glanzvoll, lieber krümelkacker.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233471</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Tue, 17 Jul 2012 12:40:22 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Tue, 17 Jul 2012 12:52:31 GMT]]></title><description><![CDATA[<p>Komisch. Normalerweise sind die Leute froh, wenn jemand den Standard zitiert. Aber hauptsache, du hast was zu meckern. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233476</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Tue, 17 Jul 2012 12:52:31 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Tue, 17 Jul 2012 13:44:25 GMT]]></title><description><![CDATA[<p>Furble Wurble schrieb:</p>
<blockquote>
<p>Sowas liebe ich: quasi zitiert, aber so tun, als ob dass Allgemeinwissen sei, und jeder wissen müsste.</p>
</blockquote>
<p>Da liest du zu viel zwischen den Zeilen. Ich wusste nur nicht, ob das eine rhetorische Frage innerhalb seiner Argumentation sein sollte oder eben nicht. Und da fiel mir nur &quot;ernst&quot; als Gegenteil von &quot;rhetorisch&quot; ein. Das mit dem &quot;quasi zitiert&quot; kapiere ich nicht ganz. Klingt so, als glaubtest du, ich hätte das im Standard extra nachgeguckt. Zu sagen &quot;decltype(b) ist ...&quot; statt &quot;Der typ von b ist ...&quot; liegt auch irgendwie nahe, oder?</p>
<p>Furble Wurble schrieb:</p>
<blockquote>
<p>Wenig glanzvoll, lieber krümelkacker.</p>
</blockquote>
<p>Leck mich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233488</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 17 Jul 2012 13:44:25 GMT</pubDate></item><item><title><![CDATA[Reply to Sone (Hacker) erklärt die Welt (C++11). War: C++ auto on Tue, 17 Jul 2012 13:39:42 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Trotzdem wirst du mir zustimmen dass das höchstens bei Klassen gut ist, [...]</p>
</blockquote>
<p>Und bei Initializern, die Funktionsaufrufe sind. Oder Variablen, die vielleicht (wahrscheinlich) selber mit auto deklariert wurden. Oder allgemeiner: bei allen Ausdrücken, die einen Hauch komplexer als das extrem triviale Beispiel eines int-Literals, das du angeführt hast. Also bei fast Allem, was über Einsteigerniveau hinausgeht.</p>
<p>Furble Wurble schrieb:</p>
<blockquote>
<p>Sowas liebe ich: quasi zitiert, aber so tun, als ob dass Allgemeinwissen sei, und jeder wissen müsste.</p>
</blockquote>
<p>Sollte jeder wissen, der sich mit den entsprechenden C++11 Features auseinandergesetzt hat, ja. Man braucht den Standard nicht im Hinterkopf zu haben, geschweige denn ihn als Zitatvorlage zu nutzen, um das hinzuschreiben. &quot; <code>int i;</code> definiert eine Variable vom Typ int.&quot; - Hab ich ausm Kopf geschrieben. Aber hey, könnte so ähnlich auch im Standard stehn, ich fühl mich ertappt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233502</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 17 Jul 2012 13:39:42 GMT</pubDate></item></channel></rss>