<?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[funktionsberechnung auch compiletime moeglich ?]]></title><description><![CDATA[<p>hola</p>
<p>hab folgende funktion, bei der ich dachte, das sie schon waehrden dem compilieren berechnet wird und nicht mehr wahrend der laufzeit. messungen ergaben: pustekuchen, falsch gedacht.</p>
<pre><code class="language-cpp">template&lt;class type&gt;
inline unsigned int maxNumbers(void)
{
   type x;
   memset(&amp;x, 0xFF, sizeof(type));
   char buf[32];
   if(isSigned (x))
      x &gt;&gt;= 1;

   itoa((x), buf, 10);

   return strlen(buf) + ((isSigned(x) ? 1 : 0));
}
</code></pre>
<p>muesste das nicht schon zur compilierzeit berechnet werden ?<br />
getestet hab ich das mit einer for-schleife und einer addition.</p>
<pre><code class="language-cpp">uint64 start, ende;
   test = StrToInt(Edit1-&gt;Text);
   uint32 result = 0;

   start = rdtsc();
   for(unsigned int i = 0;i &lt; test;++i)
   {
      if(maxNumbers&lt;unsigned int&gt;() &gt; 4)
      result += i;
   }

   ende = rdtsc();

   Memo1-&gt;Lines-&gt;Add(ende - start);
</code></pre>
<p>Compilereinstellungen hab ich das optimum genommen, was der BCB her gibt.<br />
oder liegt es an den funktionen memset und strlen, das er da nix wegoptimiert ?</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/117536/funktionsberechnung-auch-compiletime-moeglich</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 00:51:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/117536.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 Aug 2005 16:04:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to funktionsberechnung auch compiletime moeglich ? on Mon, 08 Aug 2005 16:04:00 GMT]]></title><description><![CDATA[<p>hola</p>
<p>hab folgende funktion, bei der ich dachte, das sie schon waehrden dem compilieren berechnet wird und nicht mehr wahrend der laufzeit. messungen ergaben: pustekuchen, falsch gedacht.</p>
<pre><code class="language-cpp">template&lt;class type&gt;
inline unsigned int maxNumbers(void)
{
   type x;
   memset(&amp;x, 0xFF, sizeof(type));
   char buf[32];
   if(isSigned (x))
      x &gt;&gt;= 1;

   itoa((x), buf, 10);

   return strlen(buf) + ((isSigned(x) ? 1 : 0));
}
</code></pre>
<p>muesste das nicht schon zur compilierzeit berechnet werden ?<br />
getestet hab ich das mit einer for-schleife und einer addition.</p>
<pre><code class="language-cpp">uint64 start, ende;
   test = StrToInt(Edit1-&gt;Text);
   uint32 result = 0;

   start = rdtsc();
   for(unsigned int i = 0;i &lt; test;++i)
   {
      if(maxNumbers&lt;unsigned int&gt;() &gt; 4)
      result += i;
   }

   ende = rdtsc();

   Memo1-&gt;Lines-&gt;Add(ende - start);
</code></pre>
<p>Compilereinstellungen hab ich das optimum genommen, was der BCB her gibt.<br />
oder liegt es an den funktionen memset und strlen, das er da nix wegoptimiert ?</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/848152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/848152</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Mon, 08 Aug 2005 16:04:00 GMT</pubDate></item><item><title><![CDATA[Reply to funktionsberechnung auch compiletime moeglich ? on Mon, 08 Aug 2005 16:14:58 GMT]]></title><description><![CDATA[<p>Der Borland ist soundso ein Dreckscompiler, der wird dir das nie und nimmer wegoptimieren. Und ob die Bibliotheksfunktionen so weit nachgebildet sind bzw. ob das überhaupt erlaubt ist, kann ich nicht genau sagen. Möglicherweise kann's der KAI.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/848160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/848160</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Mon, 08 Aug 2005 16:14:58 GMT</pubDate></item><item><title><![CDATA[Reply to funktionsberechnung auch compiletime moeglich ? on Mon, 08 Aug 2005 22:51:47 GMT]]></title><description><![CDATA[<p>Meep Meep schrieb:</p>
<blockquote>
<p>muesste das nicht schon zur compilierzeit berechnet werden ?</p>
</blockquote>
<p>Nö, wieso?<br />
memset, strlen und die anderen Funktionen vermutlich auch, sind Laufzeitfunktionen, da sie Laufzeit Parameter erhalten.<br />
Wenn du sowas compile-time berechnen willst, dann benutze Meta Programmierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/848375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/848375</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Mon, 08 Aug 2005 22:51:47 GMT</pubDate></item><item><title><![CDATA[Reply to funktionsberechnung auch compiletime moeglich ? on Tue, 09 Aug 2005 12:15:36 GMT]]></title><description><![CDATA[<p>Dennoch dürfen sie wegoptimiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/848664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/848664</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Tue, 09 Aug 2005 12:15:36 GMT</pubDate></item></channel></rss>