<?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[0-initialisierung von PODs und nicht PODs]]></title><description><![CDATA[<p>Guten Morgen,</p>
<p>ich habe wegen der unzureichenden C++11 Unterstützung mal gcc (zusammen mit Code::Blocks) installiert.</p>
<p>Jetzt wird mir eine Zeile á la:<br />
<code>size_type i(size_type());</code><br />
als Fehler angezeigt.<br />
Wieso ist mir auch klar und das ich statt dessen<br />
<code>size_type i((size_type()));</code><br />
oder auch<br />
<code>size_type i = size_type();</code><br />
schreiben kann und dann so gar keine Fehler bekomme.</p>
<p>Bisher dachte ich aber immer, dass in diesem Kontext nicht von einem Pointer auf eine Funktion ausgegangen wird; MSVC(10) scheint das auch zu wissen.</p>
<p>Was sagt der Standard?<br />
Wie handhabt ihr das?</p>
<p>Danke, bb</p>
<p>PS: Wen die Fehlermeldung interessiert:<br />
<code>error: default argument for template parameter for class enclosing 'typename TYPE NAMESPACE::VAR(typename TYPE (*)())'</code></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/298177/0-initialisierung-von-pods-und-nicht-pods</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 01:28:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/298177.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 15 Jan 2012 08:33:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 0-initialisierung von PODs und nicht PODs on Sun, 15 Jan 2012 09:44:11 GMT]]></title><description><![CDATA[<p>Guten Morgen,</p>
<p>ich habe wegen der unzureichenden C++11 Unterstützung mal gcc (zusammen mit Code::Blocks) installiert.</p>
<p>Jetzt wird mir eine Zeile á la:<br />
<code>size_type i(size_type());</code><br />
als Fehler angezeigt.<br />
Wieso ist mir auch klar und das ich statt dessen<br />
<code>size_type i((size_type()));</code><br />
oder auch<br />
<code>size_type i = size_type();</code><br />
schreiben kann und dann so gar keine Fehler bekomme.</p>
<p>Bisher dachte ich aber immer, dass in diesem Kontext nicht von einem Pointer auf eine Funktion ausgegangen wird; MSVC(10) scheint das auch zu wissen.</p>
<p>Was sagt der Standard?<br />
Wie handhabt ihr das?</p>
<p>Danke, bb</p>
<p>PS: Wen die Fehlermeldung interessiert:<br />
<code>error: default argument for template parameter for class enclosing 'typename TYPE NAMESPACE::VAR(typename TYPE (*)())'</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168221</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 15 Jan 2012 09:44:11 GMT</pubDate></item><item><title><![CDATA[Reply to 0-initialisierung von PODs und nicht PODs on Sun, 15 Jan 2012 09:19:09 GMT]]></title><description><![CDATA[<p>Ich nehme mal an, du hast CodeBlocks mit MinGW?<br />
Und was ist size_type? Das typedef aus den STL-Containern? Oder std::size_t?<br />
Edit²: Hmmm...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168233</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 15 Jan 2012 09:19:09 GMT</pubDate></item><item><title><![CDATA[Reply to 0-initialisierung von PODs und nicht PODs on Sun, 15 Jan 2012 09:18:11 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>Ich nehme mal an, du hast CodeBlocks mit MinGW?<br />
Und was ist size_type? Das typedef aus den STL-Containern?</p>
</blockquote>
<p>Nein. Irgend ein Size-Type. Er ist gerade in Template-Code und will sich nicht festlegen müssen. Insbesondere will er nichtmal verlangen, daß er mit =0 gut initialisiert werden kann.<br />
Sonst hätte er die Frage nicht, fürchte ich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168234</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 15 Jan 2012 09:18:11 GMT</pubDate></item><item><title><![CDATA[Reply to 0-initialisierung von PODs und nicht PODs on Sun, 15 Jan 2012 09:25:58 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Sonst hätte er die Frage nicht, fürchte ich.</p>
</blockquote>
<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="👍"
    /></p>
<p>@hacker: spielt aber keine rolle im übrigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168237</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 15 Jan 2012 09:25:58 GMT</pubDate></item><item><title><![CDATA[Reply to 0-initialisierung von PODs und nicht PODs on Sun, 15 Jan 2012 10:02:31 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>Jetzt wird mir eine Zeile á la:<br />
<code>size_type i(size_type());</code><br />
als Fehler angezeigt.</p>
</blockquote>
<p>Wieso? Ich sehe den Fehler nicht. Das ist doch eine 1a Deklaration einer Funktion i, die einen Funktionszeiger als Parameter bekommt und einen size_type-Wert zurück gibt…</p>
<p>(Stichwort: „most vexing parse“)</p>
<p>unskilled schrieb:</p>
<blockquote>
<p>Was sagt der Standard?<br />
Wie handhabt ihr das?</p>
</blockquote>
<p>Wenn man es als Funktionsdeklaration parsen kann, ist es eine Funktion. Ich ziehe, sofern möglich, die Kopierinitialisierung vor — also die Syntax mit dem Gleichheitszeichen. Klammern helfen aber auch.</p>
<p>unskilled schrieb:</p>
<blockquote>
<p>PS: Wen die Fehlermeldung interessiert:<br />
<code>error: default argument for template parameter for class enclosing 'typename TYPE NAMESPACE::VAR(typename TYPE (*)())'</code></p>
</blockquote>
<p>In Deinem Code-Beispiel ist nichts von Templates zu sehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168247</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 15 Jan 2012 10:02:31 GMT</pubDate></item><item><title><![CDATA[Reply to 0-initialisierung von PODs und nicht PODs on Sun, 15 Jan 2012 10:12:54 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>unskilled schrieb:</p>
<blockquote>
<p>PS: Wen die Fehlermeldung interessiert:<br />
<code>error: default argument for template parameter for class enclosing 'typename TYPE NAMESPACE::VAR(typename TYPE (*)())'</code></p>
</blockquote>
<p>In Deinem Code-Beispiel ist nichts von Templates zu sehen.</p>
</blockquote>
<p>spielt es denn wirklich eine rolle?<br />
size_type ist natürlich ein (vom template-parameter) abhängiger typ:<br />
<code>typedef typename allocator_type::size_type size_type;</code></p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168251</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 15 Jan 2012 10:12:54 GMT</pubDate></item><item><title><![CDATA[Reply to 0-initialisierung von PODs und nicht PODs on Sun, 15 Jan 2012 15:58:22 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>Was sagt der Standard?<br />
Wie handhabt ihr das?</p>
</blockquote>
<p>size_type i(0);<br />
um ehrlich zu sein :p</p>
<p>Wenn man es perfekt machen will, muss man wohl boost::value_initialized verwenden: <a href="http://www.boost.org/doc/libs/1_48_0/libs/utility/value_init.htm" rel="nofollow">http://www.boost.org/doc/libs/1_48_0/libs/utility/value_init.htm</a></p>
<p>Aber ich sehe das pragmatischer: wenn etwas ein Sizetype ist, dann muss er mit 0 als Initialisierung klar kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168397</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 15 Jan 2012 15:58:22 GMT</pubDate></item><item><title><![CDATA[Reply to 0-initialisierung von PODs und nicht PODs on Sun, 15 Jan 2012 16:08:07 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Aber ich sehe das pragmatischer: wenn etwas ein Sizetype ist, dann muss er mit 0 als Initialisierung klar kommen.</p>
</blockquote>
<p>es ging mir weniger um praktische vorzüge(wie geschwindigkeit oder allgemeingültigkeit, da ich das genau so sehe) als um ästethik.<br />
hab jz überall die op= syntax genommen. find ich hübscher als 0 <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2168401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168401</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 15 Jan 2012 16:08:07 GMT</pubDate></item><item><title><![CDATA[Reply to 0-initialisierung von PODs und nicht PODs on Sun, 15 Jan 2012 16:13:49 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Aber ich sehe das pragmatischer: wenn etwas ein Sizetype ist, dann muss er mit 0 als Initialisierung klar kommen.</p>
</blockquote>
<p>Nicht nur das, ich würde sogar verlangen, dass er sich wie ein built-in Integer Datentyp verhält.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168404</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sun, 15 Jan 2012 16:13:49 GMT</pubDate></item><item><title><![CDATA[Reply to 0-initialisierung von PODs und nicht PODs on Sun, 15 Jan 2012 16:38:16 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>hab jz überall die op= syntax genommen.</p>
</blockquote>
<p>…wobei eine Kopierinitialisierung natürlich keine Zuweisung ist. &lt;/nur_klarstell&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2168412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2168412</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 15 Jan 2012 16:38:16 GMT</pubDate></item></channel></rss>