<?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[Magic Numbers automatisch generieren]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gerne ein Array mit vorberechneten Werten(meine magic numbers) füllen. Diese Werte sollen schon zur Compilezeit berechnet werden. Nun habe ich es immer so gehandhabt, dass ich mit einem weiteren Programm mir die Werte berechnen und ausgeben lassen habe und dann per Copy&amp;Paste in den eigentlichen Quellcode eingefügt habe. Jedoch finde ich das sehr unschön und wollte daher fragen welche Möglichkeiten es noch gebe.<br />
Liese sich so etwas mit Präprozessor-Makros und/oder Templates realisieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/234239/magic-numbers-automatisch-generieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 11:41:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/234239.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 15 Feb 2009 12:04:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Magic Numbers automatisch generieren on Sun, 15 Feb 2009 12:04:25 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gerne ein Array mit vorberechneten Werten(meine magic numbers) füllen. Diese Werte sollen schon zur Compilezeit berechnet werden. Nun habe ich es immer so gehandhabt, dass ich mit einem weiteren Programm mir die Werte berechnen und ausgeben lassen habe und dann per Copy&amp;Paste in den eigentlichen Quellcode eingefügt habe. Jedoch finde ich das sehr unschön und wollte daher fragen welche Möglichkeiten es noch gebe.<br />
Liese sich so etwas mit Präprozessor-Makros und/oder Templates realisieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1664123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664123</guid><dc:creator><![CDATA[ZzetT]]></dc:creator><pubDate>Sun, 15 Feb 2009 12:04:25 GMT</pubDate></item><item><title><![CDATA[Reply to Magic Numbers automatisch generieren on Sun, 15 Feb 2009 12:15:28 GMT]]></title><description><![CDATA[<p>Ich verstehe nicht ganz, wieso du die Funktion zur Berechnung der Werte nicht direkt in dein Hauptprogramm packst...? Kannst du das mal näher erläutern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1664125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664125</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Sun, 15 Feb 2009 12:15:28 GMT</pubDate></item><item><title><![CDATA[Reply to Magic Numbers automatisch generieren on Sun, 15 Feb 2009 12:16:00 GMT]]></title><description><![CDATA[<p>Mach doch einfach eine Datei, die du einliest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1664126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664126</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 15 Feb 2009 12:16:00 GMT</pubDate></item><item><title><![CDATA[Reply to Magic Numbers automatisch generieren on Sun, 15 Feb 2009 12:19:01 GMT]]></title><description><![CDATA[<p>du könntest dir die werte in eine datei schreiben<br />
und das array folgendermassen initialisieren</p>
<pre><code>//Datei mit den Ergebnissen.txt
1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 12, 125, 325, 2, 6 usw...
</code></pre>
<pre><code class="language-cpp">int ergebnisse[] = { 
#include &quot;Datei mit Ergebnissen.txt&quot;
};
</code></pre>
<p>dann haste deine ergebnisse in deinem array<br />
vorteil: du musst nicht viel schreiben und es ist eig garantiert dass die werte da so drinstehen<br />
nachteil: dein code wird grösser und deine compilezeit wird auhc länger...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1664129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664129</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sun, 15 Feb 2009 12:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to Magic Numbers automatisch generieren on Sun, 15 Feb 2009 12:23:42 GMT]]></title><description><![CDATA[<p>ob sich das mit templates realisieren laesst weiss ich persoenlich nicht, koennte mir aber vorstellen dass das relativ unduebersichtlich wird je nach komplexitaet der formel.</p>
<p>was an deinem jetzigen prozess aber auf jeden fall optimierbar ist: du koenntest dir ein skript schreiben welches eine header-datei generiert in welcher die magic numbers stehen, und sofern du mit makefiles arbeitest kannst du den aufruf dieses skriptes in den buildprozess einbinden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1664137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664137</guid><dc:creator><![CDATA[loki1985]]></dc:creator><pubDate>Sun, 15 Feb 2009 12:23:42 GMT</pubDate></item><item><title><![CDATA[Reply to Magic Numbers automatisch generieren on Sun, 15 Feb 2009 12:34:29 GMT]]></title><description><![CDATA[<blockquote>
<p>Ich verstehe nicht ganz, wieso du die Funktion zur Berechnung der Werte nicht direkt in dein Hauptprogramm packst...? Kannst du das mal näher erläutern?</p>
</blockquote>
<p>Möglich wäre das schon, aber warum die Startzeit des Programms verlängern wenn es sich eh nur um konstante Werte handelt, die dann jedes mal aufs neue berechnet werden?</p>
<blockquote>
<p>Mach doch einfach eine Datei, die du einliest.</p>
</blockquote>
<p>Ja, kann ich machen, das würde das Copy&amp;Paste ersparen, aber ein zweites Programm wäre dann trotzdem noch nötig und wenn man sich dann nur diese Datei anschaut, wüßte man nicht woher diese Zahlen stammen was in meinen Augen fehleranfälliger ist.</p>
<p>Im Prinzip suche ich etwas, wo die Zahlen &quot;im Hintergrund&quot; erstellt werden, so dass auf der einen Seite nachvollziehbar ist woher diese Zahlen stammen und auf der anderen Seite die Zahlen aber trotzdem schon vorberechnet sind.</p>
<blockquote>
<p>was an deinem jetzigen prozess aber auf jeden fall optimierbar ist: du koenntest dir ein skript schreiben welches eine header-datei generiert in welcher die magic numbers stehen, und sofern du mit makefiles arbeitest kannst du den aufruf dieses skriptes in den buildprozess einbinden.</p>
</blockquote>
<p>Ja, ich denke so werde ich das machen. Ich dachte nur, dass es vielleicht auch eine C++ spezifische Möglichkeit gebe, dies frühzeitig im Build-Prozess zu machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1664141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664141</guid><dc:creator><![CDATA[ZzetT]]></dc:creator><pubDate>Sun, 15 Feb 2009 12:34:29 GMT</pubDate></item><item><title><![CDATA[Reply to Magic Numbers automatisch generieren on Sun, 15 Feb 2009 12:46:44 GMT]]></title><description><![CDATA[<p>ZzetT schrieb:</p>
<blockquote>
<p>Ich dachte nur, dass es vielleicht auch eine C++ spezifische Möglichkeit gebe, dies frühzeitig im Build-Prozess zu machen.</p>
</blockquote>
<p>Mit Template-Metaprogrammierung kannst du Zahlen zur Compilezeit berechnen. Das ist aber nicht ganz trivial... <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/1664148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664148</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 15 Feb 2009 12:46:44 GMT</pubDate></item><item><title><![CDATA[Reply to Magic Numbers automatisch generieren on Sun, 15 Feb 2009 12:49:57 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>ZzetT schrieb:</p>
<blockquote>
<p>Ich dachte nur, dass es vielleicht auch eine C++ spezifische Möglichkeit gebe, dies frühzeitig im Build-Prozess zu machen.</p>
</blockquote>
<p>Mit Template-Metaprogrammierung kannst du Zahlen zur Compilezeit berechnen. Das ist aber nicht ganz trivial... <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>Hast du diesbezüglich dennoch ein kleine Beispiel für mich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1664151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664151</guid><dc:creator><![CDATA[ZzetT]]></dc:creator><pubDate>Sun, 15 Feb 2009 12:49:57 GMT</pubDate></item><item><title><![CDATA[Reply to Magic Numbers automatisch generieren on Sun, 15 Feb 2009 12:56:09 GMT]]></title><description><![CDATA[<p>Guck mal <a href="http://knanshon.blogspot.com/2006/05/c-meta-programming-fibonacci-and-phi.html" rel="nofollow">hier</a>... Da kannst du dir anschauen wie man dass mit den Fibonacci Zahlen mit nem Metaprogramm macht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1664158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664158</guid><dc:creator><![CDATA[Tobias Gerg]]></dc:creator><pubDate>Sun, 15 Feb 2009 12:56:09 GMT</pubDate></item><item><title><![CDATA[Reply to Magic Numbers automatisch generieren on Sun, 15 Feb 2009 12:56:10 GMT]]></title><description><![CDATA[<p>Hmm. Ich weiss jetzt nicht genau, was du willst. Und wie gesagt ist die Thematik nicht ganz einfach, ich kenne mich selber auch nicht wahnsinnig gut mit Metaprogrammierung aus.</p>
<p>Vielleicht reicht es, wenn du den Artikel auf <a href="http://de.wikipedia.org/wiki/C%2B%2B-Metaprogrammierung" rel="nofollow">Wikipedia</a> liest, da ist auch ein Beispiel für die Potenzfunktion zur Compilezeit vorhanden. Ansonsten wären vielleicht Bücher angebracht. Für komplexere Dinge gibts auch noch Boost.MPL.</p>
<p>Wie sollen denn die Werte berechnet werden? Steckt eine komplexe Funktion dahinter? Je nachdem ist der Aufwand für eine Compilezeit-Lösung (inklusive Einlesen in die Thematik) nicht gerechtfertigt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1664159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664159</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 15 Feb 2009 12:56:10 GMT</pubDate></item><item><title><![CDATA[Reply to Magic Numbers automatisch generieren on Sun, 15 Feb 2009 13:00:35 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>ZzetT schrieb:</p>
<blockquote>
<p>Ich dachte nur, dass es vielleicht auch eine C++ spezifische Möglichkeit gebe, dies frühzeitig im Build-Prozess zu machen.</p>
</blockquote>
<p>Mit Template-Metaprogrammierung kannst du Zahlen zur Compilezeit berechnen. Das ist aber nicht ganz trivial... <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>Zufallszahlen gibt es aber denn auch auch keine. <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>
<p>Man könnte aber selbst einen Zufallgenerator mit Metaprogrammierung programmieren. Das ist aber imo den Aufwand nicht Wert und man nimmt lieber die schon vorgeschlagenen Lösungen. <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/1664164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664164</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 15 Feb 2009 13:00:35 GMT</pubDate></item><item><title><![CDATA[Reply to Magic Numbers automatisch generieren on Sun, 15 Feb 2009 13:05:03 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Zufallszahlen gibt es aber denn auch auch keine. <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>Er will ja keine Zufallszahlen, sondern vorberechnete Werte, wenn ich ihn richtig verstanden habe.</p>
<p>Einen Zufallsgenerator in Template-Metaprogrammierung habe ich mir auch überlegt. Wenn ich mal nichts zu tun habe, könnte ich sowas selber probieren... <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>
<p>(Schlimm wirds erst bei einem in Präprozessor-Metaprogrammierung :D)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1664168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664168</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 15 Feb 2009 13:05:03 GMT</pubDate></item><item><title><![CDATA[Reply to Magic Numbers automatisch generieren on Sun, 15 Feb 2009 13:08:24 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Zufallszahlen gibt es aber denn auch auch keine. <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>Er will ja keine Zufallszahlen, sondern vorberechnete Werte, wenn ich ihn richtig verstanden habe.</p>
</blockquote>
<p>Stimmt. Habe die Magic Numbers falsch im Kopf. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Zu Testzwecken kann das sicher noch ganz was feines sein das bereits zu Kompilierzeit generieren zu lassen, aber konfortablen und einfach sicher nicht.</p>
<p>Und im übrigen möchte ich dann nicht der sein, der das Kompilieren muss. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1664171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1664171</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 15 Feb 2009 13:08:24 GMT</pubDate></item></channel></rss>