<?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[mutable überflüssig?]]></title><description><![CDATA[<p>Dafür gibts doch const_cast&lt;&gt;?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194691/mutable-überflüssig</link><generator>RSS for Node</generator><lastBuildDate>Sun, 04 Oct 2026 23:32:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194691.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Oct 2007 21:53:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to mutable überflüssig? on Tue, 09 Oct 2007 21:53:49 GMT]]></title><description><![CDATA[<p>Dafür gibts doch const_cast&lt;&gt;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381641</guid><dc:creator><![CDATA[Mutierter Programmierer]]></dc:creator><pubDate>Tue, 09 Oct 2007 21:53:49 GMT</pubDate></item><item><title><![CDATA[Reply to mutable überflüssig? on Tue, 09 Oct 2007 22:42:19 GMT]]></title><description><![CDATA[<p>jein. const_casts sind dazu da, um etwas, was eigentlich wirklich const sein sollte, zu einer Änderung zu zwingen. mutables zeigen an, dass z.B. eine Membervariable sich verändern kann, auch wenn das Objekt const ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381650</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 09 Oct 2007 22:42:19 GMT</pubDate></item><item><title><![CDATA[Reply to mutable überflüssig? on Wed, 10 Oct 2007 05:21:07 GMT]]></title><description><![CDATA[<p>const_cast &lt;&gt; zu verwenden ist nicht so dolle. Wenn ich ein Element als konstanten Parameter oder Rückgabewert übergebe, dann erwarte ich auch, dass dieser nicht verändert wird.<br />
Ansonsten kann man sich das const auch gleich sparen...<br />
(Schnittstelle wird ausgehebelt)</p>
<p>mutable ist ein ganz anderes Kaliber. Damit zeige ich an, dass die Variable nicht zum Objektzustand gehört.<br />
Variablen, die nicht zum Objektzustand gehören sind z.B. Puffer oder zusammengesetzte Attribute. Diese müssen intern auch von konstanten Funktionen aktualisiert werden...<br />
Damit kann man zum Beispiel zusammengesetzte Attribute (z.B. Puffer) die den Objektzustand nicht verändert auch innerhalb von konstanten Funktionen aktualisieren.<br />
(Änderung erfolgt durch über oder durch die Schnittstelle)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381670</guid><dc:creator><![CDATA[MathiasTemp]]></dc:creator><pubDate>Wed, 10 Oct 2007 05:21:07 GMT</pubDate></item><item><title><![CDATA[Reply to mutable überflüssig? on Wed, 10 Oct 2007 06:11:31 GMT]]></title><description><![CDATA[<p>mutable ist ein anderes konzept als das c++ sprachelement &quot;const&quot;. man kann mit const auf immutables hinweisen, aber ob ein objekt tatsächlich mutable oder immutable ist, ist von der implementierung abhängig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381699</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Wed, 10 Oct 2007 06:11:31 GMT</pubDate></item><item><title><![CDATA[Reply to mutable überflüssig? on Wed, 10 Oct 2007 06:25:17 GMT]]></title><description><![CDATA[<p>Mit 'mutable' kannst du gezielt freigeben, welche Klassenmember von den const-Beschränkungen ausgenommen werden sollen - const_cast&lt;&gt; ist im Vergleich dazu die Holzhammer-Methode (und entsprechend gefährlich).</p>
<p>(und bei gutem Design sollte der Anwender gar nicht bemerken, wenn ein mutable-Wert sich ändert)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381705</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 10 Oct 2007 06:25:17 GMT</pubDate></item><item><title><![CDATA[Reply to mutable überflüssig? on Wed, 10 Oct 2007 09:06:10 GMT]]></title><description><![CDATA[<p>Mutierter Programmierer schrieb:</p>
<blockquote>
<p>Dafür gibts doch const_cast&lt;&gt;?</p>
</blockquote>
<p>(Mal abgesehen davon, dass ich einfach sagen würde: &quot;Nein - mutable ist nicht überflüssig&quot;)<br />
Kann man denn überhaupt &quot;this&quot; const_cast-en ?<br />
Darum geht's doch bei mutable: In einer const-Memberfunktion den Objektzustand &quot;irrelevant&quot; ändern zu können....</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381837</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 10 Oct 2007 09:06:10 GMT</pubDate></item><item><title><![CDATA[Reply to mutable überflüssig? on Wed, 10 Oct 2007 09:13:05 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Kann man denn überhaupt &quot;this&quot; const_cast-en ?</p>
</blockquote>
<p>Man kann und man darf, wenn man sicher ist, dass das ursprüngliche Objekt non-const ist.</p>
<p>Auch dazu mal ein Beispiel von Meyers</p>
<pre><code class="language-cpp">class MyClass {

  T const&amp; operator[]( size_t index ) const { ... }
  T&amp; operator[]( size_t index )
  {
    return const_cast&lt; T&amp; &gt;( const_cast&lt; MyClass const* &gt;( this )-&gt;operator[]( index ) );
  }
};
</code></pre>
<p>Weil ich im non-const operator[] <strong>weiss</strong>, dass this non-const ist, darf ich auch das const vom konstanten operator[] wegcasten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381842</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 10 Oct 2007 09:13:05 GMT</pubDate></item><item><title><![CDATA[Reply to mutable überflüssig? on Wed, 10 Oct 2007 11:42:38 GMT]]></title><description><![CDATA[<p>Ah ... danke.</p>
<p>Jetzt fällt mir auf, dass ich das schonmal gesehen aber nicht unter &quot;const_cast(this)&quot; abgespeichert hatte.<br />
Wird jetzt nachgeholt.</p>
<p>Danke,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381970</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 10 Oct 2007 11:42:38 GMT</pubDate></item><item><title><![CDATA[Reply to mutable überflüssig? on Tue, 16 Sep 2008 06:48:58 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>mein Compiler (xlC V8.0) beklagt sich &quot;The &quot;mutable&quot; specifier must be applied only to non-reference class data members.&quot; ...</p>
<p>Im Std habe ich nichts Derartiges finden können. Hat er Recht (wie eigentlich fast immer) oder spinnt er da ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1582608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1582608</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 16 Sep 2008 06:48:58 GMT</pubDate></item><item><title><![CDATA[Reply to mutable überflüssig? on Tue, 16 Sep 2008 07:28:50 GMT]]></title><description><![CDATA[<p>ISO/IEC 14882, §7.1.1,(8) schrieb:</p>
<blockquote>
<p>The mutable specifier can be applied only to names of class data members and cannot be applied to names declared const or static, and cannot be applied to reference members.</p>
</blockquote>
<p>da stehts doch im Standard <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/1582622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1582622</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 16 Sep 2008 07:28:50 GMT</pubDate></item><item><title><![CDATA[Reply to mutable überflüssig? on Tue, 16 Sep 2008 07:31:02 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>ISO/IEC 14882, §7.1.1,(8) schrieb:</p>
<blockquote>
<p>The mutable specifier can be applied only to names of class data members and cannot be applied to names declared const or static, and cannot be applied to reference members.</p>
</blockquote>
<p>da stehts doch im Standard <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><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <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="👍"
    /> <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="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /><br />
Danke!!</p>
<p>Ich habe nur &quot;§7.1.1,(9)&quot; gelesen, wo die Funktion von &quot;mutable&quot; erläutert wird. Dass im Nachsatz zu &quot;extern&quot; nochmal eine Einschränkung zu mutable kommt, war mir entgangen ...</p>
<p>Danke nochmal,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1582623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1582623</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 16 Sep 2008 07:31:02 GMT</pubDate></item></channel></rss>