<?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[C++ 11 (benutzen?)]]></title><description><![CDATA[<p>Hi Leute, ich habe mir heute Mittag zwei neue Bücher zum Thema C++ gekauft und in beiden wird auf den &quot;neuen&quot; C++ Standard geachtet.</p>
<p>Nun, ich zitiere mal folgende Codezeile :</p>
<pre><code>int iVal = 0;  // int C++11 besser: int iVal{0};
</code></pre>
<p>Ich benutze Visual C++ 2010 Express - und wenn ich</p>
<pre><code>iVal {0}
</code></pre>
<p>eingebe, bekomme ich eine Fehlermeldung.</p>
<p>Ich weiß, dass meine Frage total blöd ist und ich mich manchmal echt dumm anstelle, also bitte verzichtet auf Kommentare, die das noch mal unterstreichen <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/topic/319520/c-11-benutzen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Jul 2026 07:59:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319520.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Aug 2013 21:55:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Wed, 21 Aug 2013 21:55:20 GMT]]></title><description><![CDATA[<p>Hi Leute, ich habe mir heute Mittag zwei neue Bücher zum Thema C++ gekauft und in beiden wird auf den &quot;neuen&quot; C++ Standard geachtet.</p>
<p>Nun, ich zitiere mal folgende Codezeile :</p>
<pre><code>int iVal = 0;  // int C++11 besser: int iVal{0};
</code></pre>
<p>Ich benutze Visual C++ 2010 Express - und wenn ich</p>
<pre><code>iVal {0}
</code></pre>
<p>eingebe, bekomme ich eine Fehlermeldung.</p>
<p>Ich weiß, dass meine Frage total blöd ist und ich mich manchmal echt dumm anstelle, also bitte verzichtet auf Kommentare, die das noch mal unterstreichen <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/2347656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347656</guid><dc:creator><![CDATA[Fabolous12]]></dc:creator><pubDate>Wed, 21 Aug 2013 21:55:20 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Wed, 21 Aug 2013 22:00:39 GMT]]></title><description><![CDATA[<p><code>{}</code> ist hierbei die sogenannte <code>initializer_list</code> die Visual Studio erst ab Visual Studio 2013 unterstützt. Du musst also entweder auf <code>initializer_list</code> verzichten oder den Compiler wechselnt.</p>
<p>Btw. bei eingebauten Datentypen würde ich doch eher das hier schreiben:</p>
<pre><code>auto val = 0;
</code></pre>
<p>Wenn du C++11 machst, immer schön auto verwenden beim Initialisieren. Es sei denn du willst wirklich, wirklich eine Typkonvertierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347657</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 21 Aug 2013 22:00:39 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Wed, 21 Aug 2013 22:02:40 GMT]]></title><description><![CDATA[<p>Versuch doch einfach mal Visual Studio 2013 Preview: <a href="http://www.microsoft.com/visualstudio/deu/2013-downloads" rel="nofollow">http://www.microsoft.com/visualstudio/deu/2013-downloads</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347658</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 21 Aug 2013 22:02:40 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Wed, 21 Aug 2013 22:09:09 GMT]]></title><description><![CDATA[<p>Danke für die Antworten, ich wäre erst mal nicht drauf gekommen dass es an der Entwicklungsumgebung liegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347661</guid><dc:creator><![CDATA[Fabolous12]]></dc:creator><pubDate>Wed, 21 Aug 2013 22:09:09 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Wed, 21 Aug 2013 22:17:40 GMT]]></title><description><![CDATA[<p>Fabolous12 schrieb:</p>
<blockquote>
<p>Danke für die Antworten, ich wäre erst mal nicht drauf gekommen dass es an der Entwicklungsumgebung liegt.</p>
</blockquote>
<p>Genaugenommen liegts am Compiler <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>Leider kann auch VS2013 (noch) nicht alles, was der C++11 Standard definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347663</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 21 Aug 2013 22:17:40 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Wed, 21 Aug 2013 22:34:01 GMT]]></title><description><![CDATA[<p>Ich finde die {} in dem Fall vollkommen unnoetig und verwirren hoechstens.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347666</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Wed, 21 Aug 2013 22:34:01 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 04:03:14 GMT]]></title><description><![CDATA[<pre><code>int iVal = 0;  // int C++11 besser: int iVal{0};
</code></pre>
<p>Warum sollte das besser sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347670</guid><dc:creator><![CDATA[?????]]></dc:creator><pubDate>Thu, 22 Aug 2013 04:03:14 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 06:40:04 GMT]]></title><description><![CDATA[<p>????? schrieb:</p>
<blockquote>
<pre><code>int iVal = 0;  // int C++11 besser: int iVal{0};
</code></pre>
<p>Warum sollte das besser sein?</p>
</blockquote>
<p>Frage ich mich auch.</p>
<blockquote>
<p>immer schön auto verwenden beim Initialisieren</p>
</blockquote>
<p>Wieso das? Dann kann man ja gar nichts mehr lesen. Ich verwende für Skalare und Co. immer explizite Typangaben, um mir die Literalsuffixe zu sparen. IDEs können die Typen auch nur schwer deduzieren, daher muss man immer genau auf den initializer gucken, um den Typ zu bekommen. Das ist doch doof. Daher benutze ich <code>auto</code> <em>relativ</em> selten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347675</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 22 Aug 2013 06:40:04 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 07:17:52 GMT]]></title><description><![CDATA[<p>Für irgendwelche (map-) Iteratoren ist auto cool <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/2347681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347681</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Thu, 22 Aug 2013 07:17:52 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 07:35:26 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Wieso das? Dann kann man ja gar nichts mehr lesen. Ich verwende für Skalare und Co. immer explizite Typangaben, um mir die Literalsuffixe zu sparen. IDEs können die Typen auch nur schwer deduzieren, daher muss man immer genau auf den initializer gucken, um den Typ zu bekommen. Das ist doch doof. Daher benutze ich <code>auto</code> <em>relativ</em> selten.</p>
</blockquote>
<p>Naja, ich machs halt so wie Herb es geraten hat. Wieso brauchst du die Suffixe? Klar f für float bruach ich auch mal aber die anderen brauch ich irgendwie nicht. Ich bin mit auto=int zufrienden:D</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347684</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 22 Aug 2013 07:35:26 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 07:50:03 GMT]]></title><description><![CDATA[<p>????? schrieb:</p>
<blockquote>
<pre><code>int iVal = 0;  // int C++11 besser: int iVal{0};
</code></pre>
<p>Warum sollte das besser sein?</p>
</blockquote>
<p>Falsche Frage. Die Frage lautet: {} ist umstaendlicher zu Tippen und sieht absolut unnatuerlich aus. Welchen Mehrwert bietet es?<br />
Antwort: {} ist genau dasselbe in Himmelblau, = ist ein Token weniger und verwirrt Leute ohne C++11 Kenntnisse nicht.</p>
<p>Ich selbst nehme generell Abstand von Uniform Initialization wann immer moeglich und halte das alles fuer grossen Bockmist. Gruende wurden in verschiedensten Threads schon mehrmals genannt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347689</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 22 Aug 2013 07:50:03 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 08:00:45 GMT]]></title><description><![CDATA[<p>????? schrieb:</p>
<blockquote>
<pre><code>int iVal = 0;  // int C++11 besser: int iVal{0};
</code></pre>
<p>Warum sollte das besser sein?</p>
</blockquote>
<p>Die &quot;narrowing conversions&quot; hat C++ von C geerbt. Die neue Initialisierungssyntax muss sich daran aber nicht halten. Wenn Du versehentlich</p>
<pre><code>int iVal = 3.14;
</code></pre>
<p>schreibst, wird der Compiler höchstens eine Warnung ausgeben, wobei er bei</p>
<pre><code>int iVal {3.14};
</code></pre>
<p>meines Wissens nach einen Fehler bzgl. narrowing ausgeben muss. Es ist also ein bisschen typsicherer.</p>
<p>Ich lass mich da gerne korrigieren. Diesen ganzen neuen &quot;Initialisierungsmist&quot; mit all seinen Sonderregeln konnte ich mir bisher nicht merken. Ich weiß z.B. auch gerade nicht, ob das Vorhandensein eines Gleichzeichens ein Unterschied bzgl narrowing macht:</p>
<pre><code>int iVal = {3.14}; // ?
</code></pre>
<p>und wenn nicht, was ist dann mit Arrays, die sich so ja schon imer haben initialisieren lassen? K.A. ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347690</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 22 Aug 2013 08:00:45 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 08:00:32 GMT]]></title><description><![CDATA[<p><a href="http://ideone.com/qUzbim" rel="nofollow">http://ideone.com/qUzbim</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347693</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 22 Aug 2013 08:00:32 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 08:02:24 GMT]]></title><description><![CDATA[<p>na supi. Und was war das, was ich bzgl &quot;narrowing conversions&quot; und der neuen Initialisierungssyntax im Kopf habe? Da war doch was ...</p>
<p>Oder ist GCC 4.8 da einfach noch zu gnädig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347694</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 22 Aug 2013 08:02:24 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 08:12:22 GMT]]></title><description><![CDATA[<p><a href="http://goo.gl/2Z58aO" rel="nofollow">http://goo.gl/2Z58aO</a><br />
Der hier spuckt zumindest eine Warning aus. Ohne -Werror krieg ich aber keinen Compilerfehler hin.</p>
<p>Edit: Sorry fuer den Link-Shortener, normalerweise mache ich sowas nicht, aber der Highlighter im Forum erkennt die URL sonst nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347697</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 22 Aug 2013 08:12:22 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 08:31:47 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Ich selbst nehme generell Abstand von Uniform Initialization wann immer moeglich und halte das alles fuer grossen Bockmist.</p>
</blockquote>
<p>Ich tendiere leider zu deiner Meinung. Mehr und mehr, auch wenn in aktuellen Projekten auch penibel durchgesetzt, sehe ich keinen wirklichen Sinn.<br />
Zumal es nicht konsequent durchgesetzt werden kann, wegen solchen &quot;Sonderfällen&quot; wie der Konstruktor von <code>vector</code> o.ä., irgendwie unschön.</p>
<p>Es hat allerdings auch Vorteile. Einer davon ist bspw. der, dass die Auswertungsreihenfolge der <em>initializer-clauses</em> definiert ist (links rechts), für variadic templates eine gute Sache.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/8090">@kk</a>: Guck doch mal im Standard.</p>
<blockquote>
<p>if the initializer list has a single element of type E and either T is not a reference type or its referenced type is reference-related to E, the object or reference is initialized from that element; <strong>if a narrowing conversion (see below) is required to convert the element to T, the program is ill-formed.</strong></p>
</blockquote>
<p>Das Beispiel dazu:</p>
<pre><code>int x1 {2};// OK
int x2 {2.0};// error: narrowing
</code></pre>
<p>GCC 4.8 ist leider sehr gnädig.<br />
<em>copy-list-initialization</em> und <em>direct-list-initialization</em> sind übrigens für Skalare vollkommen gleich (werden nicht einmal separat behandelt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347698</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 22 Aug 2013 08:31:47 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 09:31:46 GMT]]></title><description><![CDATA[<p>Also im &quot;alten&quot; Standard gibt es eigentlich mehr Sonderfälle, wie z.B. hier:</p>
<pre><code>int a(1);	// variable definition
	int b();	// function declaration
	int b(foo);	// variable definition or function declaration
</code></pre>
<p>siehe <a href="http://www.stroustrup.com/C++11FAQ.html#uniform-init" rel="nofollow">http://www.stroustrup.com/C++11FAQ.html#uniform-init</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347732</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 22 Aug 2013 09:31:46 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 10:43:01 GMT]]></title><description><![CDATA[<p>manni66: Deshalb benutzt man auch nicht &quot;()&quot;, sondern &quot;=&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347762</guid><dc:creator><![CDATA[Michael E. logged out]]></dc:creator><pubDate>Thu, 22 Aug 2013 10:43:01 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 11:24:30 GMT]]></title><description><![CDATA[<p>Michael E. logged out schrieb:</p>
<blockquote>
<p>manni66: Deshalb benutzt man auch nicht &quot;()&quot;, sondern &quot;=&quot;.</p>
</blockquote>
<p>Eben, das nennt man dann Sonderfälle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2347788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347788</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 22 Aug 2013 11:24:30 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 11 (benutzen?) on Thu, 22 Aug 2013 12:27:28 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p><a href="http://goo.gl/2Z58aO" rel="nofollow">http://goo.gl/2Z58aO</a><br />
Der hier spuckt zumindest eine Warning aus. Ohne -Werror krieg ich aber keinen Compilerfehler hin.</p>
</blockquote>
<p>Immerhin. Das ist schon mehr als sonst. <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/2347814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2347814</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 22 Aug 2013 12:27:28 GMT</pubDate></item></channel></rss>