<?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[Constness bei Funktionsparametern und Typsynthese]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgenden Code (stark vereinfacht):</p>
<pre><code class="language-cpp">typedef boost::function_types::parameter_types&lt;void (int const)&gt;::type parameters;
typedef boost::mpl::at_c&lt;parameters, 0&gt;::type argument;

//...
std::cout &lt;&lt; std::booalpha &lt;&lt; boost::is_const&lt;argument&gt;::value &lt;&lt; std::endl; //auf MSVC9 false, erwartet true
std::cout &lt;&lt; typeid(argument).name() &lt;&lt; std::endl;                           //auf MSVC9 int erwartet const int
</code></pre>
<p>Auf MSVC9 bekomme ich kommentierten Ergebnisse. Ich würde allerdings erwarten, dass <code>is_const 'true'</code> liefert bzw. das <code>typeid 'const int'</code> liefert. Ändere ich die Signatur in <code>void (int const &amp;)</code> bekomme ich wie erwartet das <code>const</code> mitgeliefert (nach Entfernung der Referenz).<br />
Habe ich da irgendwie einen Denkfehler drin? Ist das ein Bug?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/295502/constness-bei-funktionsparametern-und-typsynthese</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 09:38:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/295502.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 15 Nov 2011 14:47:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Constness bei Funktionsparametern und Typsynthese on Tue, 15 Nov 2011 14:47:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgenden Code (stark vereinfacht):</p>
<pre><code class="language-cpp">typedef boost::function_types::parameter_types&lt;void (int const)&gt;::type parameters;
typedef boost::mpl::at_c&lt;parameters, 0&gt;::type argument;

//...
std::cout &lt;&lt; std::booalpha &lt;&lt; boost::is_const&lt;argument&gt;::value &lt;&lt; std::endl; //auf MSVC9 false, erwartet true
std::cout &lt;&lt; typeid(argument).name() &lt;&lt; std::endl;                           //auf MSVC9 int erwartet const int
</code></pre>
<p>Auf MSVC9 bekomme ich kommentierten Ergebnisse. Ich würde allerdings erwarten, dass <code>is_const 'true'</code> liefert bzw. das <code>typeid 'const int'</code> liefert. Ändere ich die Signatur in <code>void (int const &amp;)</code> bekomme ich wie erwartet das <code>const</code> mitgeliefert (nach Entfernung der Referenz).<br />
Habe ich da irgendwie einen Denkfehler drin? Ist das ein Bug?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2144850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144850</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 15 Nov 2011 14:47:53 GMT</pubDate></item><item><title><![CDATA[Reply to Constness bei Funktionsparametern und Typsynthese on Tue, 15 Nov 2011 15:11:12 GMT]]></title><description><![CDATA[<p>Vielleicht optimiert der Compiler das unnötige <em>const</em> einfach weg, wenn es sich nicht um eine Referenz/einen Pointer handelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2144860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144860</guid><dc:creator><![CDATA[der mit dem const tanzt]]></dc:creator><pubDate>Tue, 15 Nov 2011 15:11:12 GMT</pubDate></item><item><title><![CDATA[Reply to Constness bei Funktionsparametern und Typsynthese on Tue, 15 Nov 2011 15:14:17 GMT]]></title><description><![CDATA[<p>der mit dem const tanzt schrieb:</p>
<blockquote>
<p>Vielleicht optimiert der Compiler das unnötige <em>const</em> einfach weg, wenn es sich nicht um eine Referenz/einen Pointer handelt.</p>
</blockquote>
<p>Dann würde folgendes compilierbar sein:</p>
<pre><code class="language-cpp">void f(int const a)
{
   a = 10;
}
</code></pre>
<p>ist es aber, wie erwartet, nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2144862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144862</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 15 Nov 2011 15:14:17 GMT</pubDate></item><item><title><![CDATA[Reply to Constness bei Funktionsparametern und Typsynthese on Tue, 15 Nov 2011 15:21:01 GMT]]></title><description><![CDATA[<p>top-level cv-Qualifikationen eines Funktionsparameters sind niemals Teil des Funktionstyps (8.3.5/5).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2144865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2144865</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 15 Nov 2011 15:21:01 GMT</pubDate></item><item><title><![CDATA[Reply to Constness bei Funktionsparametern und Typsynthese on Wed, 16 Nov 2011 12:15:47 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>top-level cv-Qualifikationen eines Funktionsparameters sind niemals Teil des Funktionstyps (8.3.5/5).</p>
</blockquote>
<p>Wo liest Du das denn raus?</p>
<p>ISO/IEC 14882:2003 8.3.5/5 schrieb:</p>
<blockquote>
<p>[Example: the declaration<br />
<code>int fseek(FILE*, long, int);</code><br />
declares a function taking three arguments of the specified types, and returning int (7.1.5). ]</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2145172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145172</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 16 Nov 2011 12:15:47 GMT</pubDate></item><item><title><![CDATA[Reply to Constness bei Funktionsparametern und Typsynthese on Wed, 16 Nov 2011 12:22:44 GMT]]></title><description><![CDATA[<p>Es dürfte 8.3.5/3 gemeint sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145174</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Wed, 16 Nov 2011 12:22:44 GMT</pubDate></item><item><title><![CDATA[Reply to Constness bei Funktionsparametern und Typsynthese on Wed, 16 Nov 2011 12:35:56 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Es dürfte 8.3.5/3 gemeint sein.</p>
</blockquote>
<p>Wer lesen kann (ich anscheinend nicht) ist klar im Vorteil.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145179</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 16 Nov 2011 12:35:56 GMT</pubDate></item><item><title><![CDATA[Reply to Constness bei Funktionsparametern und Typsynthese on Wed, 16 Nov 2011 12:36:50 GMT]]></title><description><![CDATA[<p>Ich bezog mich auf n3290. 8.3.5/3 ist der entsprechende Absatz für C++03.<br />
Quellenangaben beziehen sich bei mir grundsätzlich auf den neuen Standard, wenn nichts anderes gesagt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145181</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 16 Nov 2011 12:36:50 GMT</pubDate></item><item><title><![CDATA[Reply to Constness bei Funktionsparametern und Typsynthese on Wed, 16 Nov 2011 12:39:58 GMT]]></title><description><![CDATA[<p>Sorry camper, das war mir eigentlich klar, ich hab mich dann aber von diesem Fast-Treffer in C++98 blenden lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145184</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Wed, 16 Nov 2011 12:39:58 GMT</pubDate></item></channel></rss>