<?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[statische Funktionen]]></title><description><![CDATA[<p>hallo, ich habe eine verständnisfrage zu statischen Funktionen</p>
<p>oftmals muss man ja zB für std::sort ein sortier-kriterium erzeugen,<br />
ich habe dann nun Zb sowas gemacht :</p>
<blockquote>
<p>hypothesis.hpp</p>
</blockquote>
<pre><code class="language-cpp">static bool moreProbable(const Hypothesis&amp; utt1,const Hypothesis&amp; utt2)
  {
  return (utt1.getLogProb() &gt; utt2.getLogProb());
  }
</code></pre>
<p>nun meckert aber gcc, :<br />
hypothesis.hpp:32: warning: 'bool moreProbable(const UtteranceHypothesis&amp;, const UtteranceHypothesis&amp;)' defined but not used</p>
<p>die aussage ist ja schon aussagekräftig, aber warum er davor warnt kapiere ich trotzdem nicht</p>
<p>wenn ich die Funktion nun aber in die cpp auslager, verliere ich das<br />
implizite inline, und eigentlich finde ich das auch quatsch, kann mir<br />
wer erklären was diese fehler meldung soll, und wie man vielleicht beseitigt</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/208819/statische-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 03:01:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/208819.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 23 Mar 2008 08:28:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to statische Funktionen on Sun, 23 Mar 2008 08:28:37 GMT]]></title><description><![CDATA[<p>hallo, ich habe eine verständnisfrage zu statischen Funktionen</p>
<p>oftmals muss man ja zB für std::sort ein sortier-kriterium erzeugen,<br />
ich habe dann nun Zb sowas gemacht :</p>
<blockquote>
<p>hypothesis.hpp</p>
</blockquote>
<pre><code class="language-cpp">static bool moreProbable(const Hypothesis&amp; utt1,const Hypothesis&amp; utt2)
  {
  return (utt1.getLogProb() &gt; utt2.getLogProb());
  }
</code></pre>
<p>nun meckert aber gcc, :<br />
hypothesis.hpp:32: warning: 'bool moreProbable(const UtteranceHypothesis&amp;, const UtteranceHypothesis&amp;)' defined but not used</p>
<p>die aussage ist ja schon aussagekräftig, aber warum er davor warnt kapiere ich trotzdem nicht</p>
<p>wenn ich die Funktion nun aber in die cpp auslager, verliere ich das<br />
implizite inline, und eigentlich finde ich das auch quatsch, kann mir<br />
wer erklären was diese fehler meldung soll, und wie man vielleicht beseitigt</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1479013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479013</guid><dc:creator><![CDATA[Statiker]]></dc:creator><pubDate>Sun, 23 Mar 2008 08:28:37 GMT</pubDate></item><item><title><![CDATA[Reply to statische Funktionen on Sun, 23 Mar 2008 08:40:46 GMT]]></title><description><![CDATA[<p>Wenn du die Funktion an std::sort weitergibst, verlierst du die Möglichkeit des inlining imho sowieso, da ja die Adresse der Funktion benötigt wird. Folglich muss sie sich im Programmspeicher befinden.</p>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1479015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479015</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Sun, 23 Mar 2008 08:40:46 GMT</pubDate></item><item><title><![CDATA[Reply to statische Funktionen on Sun, 23 Mar 2008 10:20:38 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13710">@Don06</a>: Nein, das stimmt so nicht. Wenn die Funktion kurz genug ist, dann kann der Compiler sie bei der Template-Erzeugung (z.B. bei std::sort) automatisch inlinen.<br />
Um das zu unterstützen kann man die Funktion explizit noch mit dem Schlüsselwort &quot;inline&quot; markieren.</p>
<p>@Statiker: Du solltest niemals &quot;static&quot;-Funktionen in Header deklarieren, da diese dann bei Einbindung mittels #include &quot;...&quot; von jeder CPP-Datei instanziiert werden, d.h. diese Funktion gibt es dann mehrmals in deinem Programm (wenn auch nicht benutzt, und genau davor warnt dich der Compiler).</p>
<p>Richtig wäre also entweder<br />
- die Funktion im Header (automatisch inline) definieren<br />
oder aber<br />
- nur in der CPP-Datei (inline) definieren (wenn sie nur dort benutzt wird)<br />
!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1479041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479041</guid><dc:creator><![CDATA[~inline]]></dc:creator><pubDate>Sun, 23 Mar 2008 10:20:38 GMT</pubDate></item></channel></rss>