<?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[reference const_reference L-value R-value]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich mal wieder mit einer Frage über guten Stil,</p>
<p>ich hatte aus vorgegebenen Code ein Struct wie folgt</p>
<pre><code class="language-cpp">template &lt;int dim&gt; 
  struct PointHistory
  {
      SymmetricTensor&lt;2,dim&gt; old_stress;
  };
</code></pre>
<p>daraus aber eine simple Klasse gemacht mit getter und setter.</p>
<p>Nun gibt es aber eine Stelle im Code, die sah mit struct so aus.</p>
<pre><code class="language-cpp">local_quadrature_points_history-&gt;at(q).old_stress = rotated_new_stress;
</code></pre>
<p>Mit der neuen PointHistory-Klasse sieht die so aus:</p>
<pre><code class="language-cpp">local_quadrature_points_history.at(q).setOldStress( rotated_new_stress );
</code></pre>
<p>Dann meckert aber der Compiler</p>
<pre><code>/home/users/guptar5t/ARES/ARES_DE_MOD/ARESv0.04/source/main.cpp(1831): 
error: the object has cv-qualifiers that are not compatible with the member function
            object type is: const ares::PointHistory&lt;2&gt;
                                local_quadrature_points_history.at(q).setOldStress( rotated_new_stress );
</code></pre>
<p>Ich verstehe das so, dass &quot;local_quadrature_points_history&quot; kein L-value mehr ist und deswegen mit at eine konstante Referenz auf das PointHistory-Objekt zurückgegeben wird.<br />
Ich habe nun allerdings keine Idee, wie ich das ganze besonders sauber lösen soll. Ich hab daran gedacht eine Referenzrückgabe von oldStress für PointHistory<br />
hinzuzufügen, weiß aber nicht, ob das sauber ist.<br />
Gibt es bessere Vorschläge?</p>
<p>Danke<br />
Rahul</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/272801/reference-const_reference-l-value-r-value</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 16:26:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/272801.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Aug 2010 13:40:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to reference const_reference L-value R-value on Wed, 25 Aug 2010 13:40:38 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich mal wieder mit einer Frage über guten Stil,</p>
<p>ich hatte aus vorgegebenen Code ein Struct wie folgt</p>
<pre><code class="language-cpp">template &lt;int dim&gt; 
  struct PointHistory
  {
      SymmetricTensor&lt;2,dim&gt; old_stress;
  };
</code></pre>
<p>daraus aber eine simple Klasse gemacht mit getter und setter.</p>
<p>Nun gibt es aber eine Stelle im Code, die sah mit struct so aus.</p>
<pre><code class="language-cpp">local_quadrature_points_history-&gt;at(q).old_stress = rotated_new_stress;
</code></pre>
<p>Mit der neuen PointHistory-Klasse sieht die so aus:</p>
<pre><code class="language-cpp">local_quadrature_points_history.at(q).setOldStress( rotated_new_stress );
</code></pre>
<p>Dann meckert aber der Compiler</p>
<pre><code>/home/users/guptar5t/ARES/ARES_DE_MOD/ARESv0.04/source/main.cpp(1831): 
error: the object has cv-qualifiers that are not compatible with the member function
            object type is: const ares::PointHistory&lt;2&gt;
                                local_quadrature_points_history.at(q).setOldStress( rotated_new_stress );
</code></pre>
<p>Ich verstehe das so, dass &quot;local_quadrature_points_history&quot; kein L-value mehr ist und deswegen mit at eine konstante Referenz auf das PointHistory-Objekt zurückgegeben wird.<br />
Ich habe nun allerdings keine Idee, wie ich das ganze besonders sauber lösen soll. Ich hab daran gedacht eine Referenzrückgabe von oldStress für PointHistory<br />
hinzuzufügen, weiß aber nicht, ob das sauber ist.<br />
Gibt es bessere Vorschläge?</p>
<p>Danke<br />
Rahul</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944254</guid><dc:creator><![CDATA[Rahul0891]]></dc:creator><pubDate>Wed, 25 Aug 2010 13:40:38 GMT</pubDate></item><item><title><![CDATA[Reply to reference const_reference L-value R-value on Wed, 25 Aug 2010 14:46:37 GMT]]></title><description><![CDATA[<p>Ok, Entwarnung der Compilerfehler hatte nichts mit den Begriffen aus dem Titel<br />
zu tun, sondern ich Idiot habe<br />
local_quadrature_points_history<br />
vorher const deklariert gehabt und es voll nicht gecheckt.</p>
<p>Also keine Mühe mehr machen, das hier noch zu lesen oder sonstwie zu verstehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944281</guid><dc:creator><![CDATA[Rahul0891]]></dc:creator><pubDate>Wed, 25 Aug 2010 14:46:37 GMT</pubDate></item></channel></rss>