<?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[Doch zu const-correct?]]></title><description><![CDATA[<p>Him ich hab folgendes kleines Problem mit der etwas uebergenauen Handhabung von const Datenmembern seitens eines Compilers:</p>
<pre><code class="language-cpp">struct PytParam
{
  typedef const int Par;
  Par PARP90, PARP85, PARP86; 
  Par PARP81min, PARP81max;   //PTMin for secondary scatters
  Par PARP89, CKIN3;          //same for all sets
  Par pytVers;
};

const PytParam pytParam[n]=
  {
    { 16, 33, 66, 19, 19, 1000, 20, PYTHIA62 },
    { 16, 33, 66, 19, 19, 1000, 20, PYTHIA62 },
    //...
  }
</code></pre>
<p>Da meckert er:</p>
<pre><code>: In member function `
   PytParam&amp; PytParam::operator=(const PytParam&amp;)':
: error: non-static
   const member `const int PytParam::PARP90', can't use default assignment
   operator
</code></pre>
<p>Und so weiter fuer alle member von PytParam</p>
<p>Wie kann ich das umgehen? Ich benutze sie ja wirklich als const structs, nur scheint er das bei der initialisierung anders zu sehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192166/doch-zu-const-correct</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 09:20:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192166.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Sep 2007 12:01:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Doch zu const-correct? on Tue, 11 Sep 2007 12:01:46 GMT]]></title><description><![CDATA[<p>Him ich hab folgendes kleines Problem mit der etwas uebergenauen Handhabung von const Datenmembern seitens eines Compilers:</p>
<pre><code class="language-cpp">struct PytParam
{
  typedef const int Par;
  Par PARP90, PARP85, PARP86; 
  Par PARP81min, PARP81max;   //PTMin for secondary scatters
  Par PARP89, CKIN3;          //same for all sets
  Par pytVers;
};

const PytParam pytParam[n]=
  {
    { 16, 33, 66, 19, 19, 1000, 20, PYTHIA62 },
    { 16, 33, 66, 19, 19, 1000, 20, PYTHIA62 },
    //...
  }
</code></pre>
<p>Da meckert er:</p>
<pre><code>: In member function `
   PytParam&amp; PytParam::operator=(const PytParam&amp;)':
: error: non-static
   const member `const int PytParam::PARP90', can't use default assignment
   operator
</code></pre>
<p>Und so weiter fuer alle member von PytParam</p>
<p>Wie kann ich das umgehen? Ich benutze sie ja wirklich als const structs, nur scheint er das bei der initialisierung anders zu sehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363230</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 11 Sep 2007 12:01:46 GMT</pubDate></item><item><title><![CDATA[Reply to Doch zu const-correct? on Tue, 11 Sep 2007 12:05:49 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Du kannst nunmal einer konstanten struct mit konstanten Membern nichts zuweisen. Bastel dir doch einen Konstruktor für deine struct der die Parameter übernehmen kann und fülle dann einen vector mit derartig konstruierten Objekten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363235</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 11 Sep 2007 12:05:49 GMT</pubDate></item><item><title><![CDATA[Reply to Doch zu const-correct? on Tue, 11 Sep 2007 12:09:39 GMT]]></title><description><![CDATA[<p>Kommen Konstruktor und Init-Liste in Frage?</p>
<pre><code class="language-cpp">struct PytParam
{
  typedef const int Par;
  Par PARP90, PARP85, PARP86;
  // gekürzt
  PytParam(Par a, Par b, Par c /*, ...*/): PARP90( a ), PARP85( b ), PARP86( c ) {}
};

const PytParam pytParam[]= {
    PytParam( 16, 33, 66 /*, ...*/ ),
    PytParam( 16, 33, 66 /*, ...*/ )
};
</code></pre>
<p>EDIT:<br />
Hmmm, too slow</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363239</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 11 Sep 2007 12:09:39 GMT</pubDate></item><item><title><![CDATA[Reply to Doch zu const-correct? on Tue, 11 Sep 2007 12:19:27 GMT]]></title><description><![CDATA[<p>Meinen Infos zufolge ist die Initialisierung fuer const structs sofort nach Deklaration nur per Gleichheitszeichen moeglich, und zwar ohne Konstruktor (wie waere es denn sonst in C auch moeglich...)<br />
Um Missverstaendnissen vorzubeugen: nein, ich mache kein C, sondern zwar C++, allerdings kann ich auf die Loesung mit dem vector nicht zurueckgreifen, weil STL-Container bei meinem &quot;Compiler&quot; (der eher ein interpreter ist) fehlerhaft implementiert sind. Und nein, ich kann nicht auf einen anderen Compiler wechseln.</p>
<p>/edit: auf LJ's Art versuch ichs mal, danke.<br />
//eedit: bringt mir immernoch die gleiche Fehlermeldung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363243</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 11 Sep 2007 12:19:27 GMT</pubDate></item><item><title><![CDATA[Reply to Doch zu const-correct? on Tue, 11 Sep 2007 12:25:44 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>//eedit: bringt mir immernoch die gleiche Fehlermeldung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>? Zeig mal bitte nochmal dann den Code, sollte/müsste eigentlich so funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363254</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 11 Sep 2007 12:25:44 GMT</pubDate></item><item><title><![CDATA[Reply to Doch zu const-correct? on Tue, 11 Sep 2007 12:45:48 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct PytParam
{
  typedef const int Par;
  Par PARP90, PARP85, PARP86; 
  Par PARP81min, PARP81max;   //PTMin for secondary scatters
  Par PARP89, CKIN3;          //same for all sets
  Par pytVers;
  PytParam(Par p90, Par p85, Par p86, Par p81mn, Par p81mx, Par p89, Par ck3, Par pv) :
    PARP90(p90), PARP85(p85), PARP86(p86), PARP81min(p81mn), PARP81max(p81mx),
    PARP89(p89), CKIN3(ck3), pytVers(pv) {}
};

const PytParam pytParam[nPytSets]=
  { //  P90,  P85,  \P86, 81&lt;, 81&gt;,  P89, CK3, PVers
    // =============================================
    // PYTHIA 6.2, parameters used earlier
    PytParam( 16, 33, 66, 19, 19, 1000, 20, PYTHIA62 ), //P62_DIRECT	    
    PytParam( 16, 33, 66, 19, 19, 1000, 20, PYTHIA62 ), //P62_NOMPI
    PytParam(  0, 33, 66, 11, 19, 1000, 20, PYTHIA62 ), //P62_s000_033_066
    PytParam(  0, 90, 95,  9, 19, 1000, 20, PYTHIA62 ), //P62_s000_090_095
    PytParam( 13, 33, 66, 11, 23, 1000, 20, PYTHIA62 ), //P62_s013_033_066
    //...
  };
</code></pre>
<p>So wies vorgeschlagen wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363294</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 11 Sep 2007 12:45:48 GMT</pubDate></item><item><title><![CDATA[Reply to Doch zu const-correct? on Tue, 11 Sep 2007 12:48:12 GMT]]></title><description><![CDATA[<p>Was ist nPytSets ? Höchswahrscheinlich nix constes ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363296</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 11 Sep 2007 12:48:12 GMT</pubDate></item><item><title><![CDATA[Reply to Doch zu const-correct? on Tue, 11 Sep 2007 13:18:03 GMT]]></title><description><![CDATA[<p>natuerlich was konstantes, sonst waere allerdings auch die Fehlermeldung eine voellig andere:</p>
<pre><code class="language-cpp">const int nPytSets = 19;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1363339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363339</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 11 Sep 2007 13:18:03 GMT</pubDate></item><item><title><![CDATA[Reply to Doch zu const-correct? on Tue, 11 Sep 2007 13:48:11 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Wie kann ich das umgehen? Ich benutze sie ja wirklich als const structs, nur scheint er das bei der initialisierung anders zu sehen...</p>
</blockquote>
<p>Wenn die Strukturen immer konstant sind, mach sie const; wenn Member konstant sein sollen, unabhängig davon, ab die Strukturen konstant sind oder nicht, dann mach die Member konstant. Mach die Member aber <em>nicht</em> const, wenn sie nur deshalb konstant auftreten, weil die Strukturen immer konstant sind. Das macht unnötigen Ärger, hilft nicht und ist auch logisch zweifelhaft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363364</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 11 Sep 2007 13:48:11 GMT</pubDate></item><item><title><![CDATA[Reply to Doch zu const-correct? on Tue, 11 Sep 2007 14:41:16 GMT]]></title><description><![CDATA[<p>danke, das hat geholfen. Ich benutze ausschliesslich das array von konstanten <code>PytParam</code> s, da ists natuerlich unnoetig die member nochmal const zu machen. typedef geaendert=&gt;funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363420</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 11 Sep 2007 14:41:16 GMT</pubDate></item></channel></rss>