<?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[Virutelle inline Funktionen]]></title><description><![CDATA[<p>Gibt es bei virtuellen inline Funktionen (z.B. &quot;<strong>virtual inline void</strong> Func() { */* ... <em>/</em> }&quot;) irgend etwas spezielles zu beachten, oder verhalten die sich genau so wie 'normale' virtuelle Funktionen?<br />
Oder wird dabei vielleicht sogar vom Compiler das <em>inline</em> ignoriert??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/272177/virutelle-inline-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 01:10:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/272177.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Aug 2010 08:57:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Virutelle inline Funktionen on Thu, 12 Aug 2010 08:59:05 GMT]]></title><description><![CDATA[<p>Gibt es bei virtuellen inline Funktionen (z.B. &quot;<strong>virtual inline void</strong> Func() { */* ... <em>/</em> }&quot;) irgend etwas spezielles zu beachten, oder verhalten die sich genau so wie 'normale' virtuelle Funktionen?<br />
Oder wird dabei vielleicht sogar vom Compiler das <em>inline</em> ignoriert??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939048</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Thu, 12 Aug 2010 08:59:05 GMT</pubDate></item><item><title><![CDATA[Reply to Virutelle inline Funktionen on Thu, 12 Aug 2010 09:05:38 GMT]]></title><description><![CDATA[<p>LukasBanana schrieb:</p>
<blockquote>
<p>Oder wird dabei vielleicht sogar vom Compiler das <em>inline</em> ignoriert??</p>
</blockquote>
<p>Ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939057</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 12 Aug 2010 09:05:38 GMT</pubDate></item><item><title><![CDATA[Reply to Virutelle inline Funktionen on Thu, 12 Aug 2010 09:25:03 GMT]]></title><description><![CDATA[<p>Die Benutzung des inline Schlüsselworts macht heutzutage kaum noch Sinn... der Compiler kann wesentlich besser entscheiden, ob es Sinn macht einen Funktionsaufruf zu machen oder den inline Code zu erzeugen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939071</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Thu, 12 Aug 2010 09:25:03 GMT</pubDate></item><item><title><![CDATA[Reply to Virutelle inline Funktionen on Thu, 12 Aug 2010 09:34:00 GMT]]></title><description><![CDATA[<p>DocShoe schrieb:</p>
<blockquote>
<p>Die Benutzung des inline Schlüsselworts macht heutzutage kaum noch Sinn...</p>
</blockquote>
<p>Es sei denn, man definiert eine Funktion im Header, denn ohne inline würde der Linker über doppelt definierte Funktionen stolpern.</p>
<p>Lars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939076</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 12 Aug 2010 09:34:00 GMT</pubDate></item><item><title><![CDATA[Reply to Virutelle inline Funktionen on Thu, 12 Aug 2010 09:40:52 GMT]]></title><description><![CDATA[<p>Wenn der Compiler nicht weiß, welche konkrete Klasse hinter dem Objekt steckt, kann er den Aufruf natürlich nicht inlinen.</p>
<pre><code class="language-cpp">MyDerivedClass c;
c.inlineFunction(); // kein Problem

MyBaseClass* b = new MyDerivedClass;
b-&gt;inlineFunction(); // schon schwerer, aber machbar

MyBaseClass* b2 = rätselhaftebedingung ? new MyDerivedClass : new YourDerivedClass;
b-&gt;inlineFunction(); // kann nicht geinlinet werden
</code></pre>
<p>Ansonsten gilt zum inline-Schlüsselwort natürlich das bisher schon gesagte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939079</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 12 Aug 2010 09:40:52 GMT</pubDate></item><item><title><![CDATA[Reply to Virutelle inline Funktionen on Thu, 12 Aug 2010 09:45:30 GMT]]></title><description><![CDATA[<p>Ich betrachte das inline Keyword nur als Weg um die ODR einzuhalten.<br />
Mehr macht doch das Keyword eigentlich auch nicht... oder irre ich mich?</p>
<p>Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939083</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Thu, 12 Aug 2010 09:45:30 GMT</pubDate></item><item><title><![CDATA[Reply to Virutelle inline Funktionen on Thu, 12 Aug 2010 09:54:52 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>DocShoe schrieb:</p>
<blockquote>
<p>Die Benutzung des inline Schlüsselworts macht heutzutage kaum noch Sinn...</p>
</blockquote>
<p>Es sei denn, man definiert eine Funktion im Header, denn ohne inline würde der Linker über doppelt definierte Funktionen stolpern.</p>
</blockquote>
<p>Das verstehe ich nicht! Ich dachte gerade wenn man eine Funktion im Header definiert ist das inline überflüssig?<br />
Ich hab zumindest einige Funktionen im Header definiert ohne ein explizietes inline und der Linker hat sich nie beschwert.</p>
<p>Oder deklarierst du die Funktion erst und definierst Sie an einer anderen Stelle oder was genau ist da gemeint?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939090</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Thu, 12 Aug 2010 09:54:52 GMT</pubDate></item><item><title><![CDATA[Reply to Virutelle inline Funktionen on Thu, 12 Aug 2010 10:03:20 GMT]]></title><description><![CDATA[<p>Jockelx schrieb:</p>
<blockquote>
<p>manni66 schrieb:</p>
<blockquote>
<p>DocShoe schrieb:</p>
<blockquote>
<p>Die Benutzung des inline Schlüsselworts macht heutzutage kaum noch Sinn...</p>
</blockquote>
<p>Es sei denn, man definiert eine Funktion im Header, denn ohne inline würde der Linker über doppelt definierte Funktionen stolpern.</p>
</blockquote>
<p>Das verstehe ich nicht! Ich dachte gerade wenn man eine Funktion im Header definiert ist das inline überflüssig?<br />
Ich hab zumindest einige Funktionen im Header definiert ohne ein explizietes inline und der Linker hat sich nie beschwert.</p>
<p>Oder deklarierst du die Funktion erst und definierst Sie an einer anderen Stelle oder was genau ist da gemeint?</p>
</blockquote>
<pre><code class="language-cpp">struct x
{
  void f1();
};

void x::f1() {}  // Fehler

void f2() {} // Fehler
</code></pre>
<p>Ohne inline führen die beiden Funktionsdefinitionen zu einem Fehler, wobei ich persönlich in einem Header die Klassenfunktion (f1) auch in der Klasse selber definieren würde. In Qt ist das aber z.B. oft so wie oben gemacht.</p>
<p>Lars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939095</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 12 Aug 2010 10:03:20 GMT</pubDate></item><item><title><![CDATA[Reply to Virutelle inline Funktionen on Thu, 12 Aug 2010 10:12:12 GMT]]></title><description><![CDATA[<p>Ah okay , hab ich noch nie gesehen und werde ich auch zukünftig in meinem Code nicht sehen <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="😉"
    /> .<br />
Aber trotzdem gut zu wissen, Danke für die Erklärung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939099</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Thu, 12 Aug 2010 10:12:12 GMT</pubDate></item><item><title><![CDATA[Reply to Virutelle inline Funktionen on Thu, 12 Aug 2010 10:27:41 GMT]]></title><description><![CDATA[<p>Jockelx schrieb:</p>
<blockquote>
<p>Ich hab zumindest einige Funktionen im Header definiert ohne ein explizietes inline und der Linker hat sich nie beschwert.</p>
</blockquote>
<p>Innerhalb der Klasse ist es ja automatisch inline. Aber das meinst Du sicher nicht.</p>
<p>Außerhalb hast Du einfach nur Glück gehabt, daß die Datei zufällig nur von einer cpp-Datei inkludiert wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939109</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 12 Aug 2010 10:27:41 GMT</pubDate></item><item><title><![CDATA[Reply to Virutelle inline Funktionen on Thu, 12 Aug 2010 10:30:57 GMT]]></title><description><![CDATA[<p>theta schrieb:</p>
<blockquote>
<p>Ich betrachte das inline Keyword nur als Weg um die ODR einzuhalten.<br />
Mehr macht doch das Keyword eigentlich auch nicht... oder irre ich mich?</p>
</blockquote>
<p>Naja, das Definieren im Header ermöglicht es dem Compiler, auch alten und Dummen, es zu inlinen. Es kommt vor, daß ich kleine Sachen, die ich gerne geinlined hätte, im Header definiere.</p>
<p>Und dann muß man wegen der ODR inline schreiben. Aber ich schreibe nicht inline, um inlining zu bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939111</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 12 Aug 2010 10:30:57 GMT</pubDate></item><item><title><![CDATA[Reply to Virutelle inline Funktionen on Thu, 12 Aug 2010 10:40:37 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Jockelx schrieb:</p>
<blockquote>
<p>Ich hab zumindest einige Funktionen im Header definiert ohne ein explizietes inline und der Linker hat sich nie beschwert.</p>
</blockquote>
<p>Innerhalb der Klasse ist es ja automatisch inline. Aber das meinst Du sicher nicht.</p>
</blockquote>
<p>Doch, das meinte ich.<br />
Ich kenne das nicht und sehe auch keinen Sinn darin, das man Funktionen ausserhalb der Klasse im Header definiert.<br />
Finde ich hässlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939116</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Thu, 12 Aug 2010 10:40:37 GMT</pubDate></item><item><title><![CDATA[Reply to Virutelle inline Funktionen on Thu, 12 Aug 2010 10:50:26 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Naja, das Definieren im Header ermöglicht es dem Compiler, auch alten und Dummen, es zu inlinen. Es kommt vor, daß ich kleine Sachen, <strong>die ich gerne geinlined hätte</strong>, im Header definiere.</p>
<p>Und dann <strong>muß man wegen der ODR inline</strong> schreiben. Aber <strong>ich schreibe nicht inline, um inlining zu bekommen</strong>.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939123</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 12 Aug 2010 10:50:26 GMT</pubDate></item></channel></rss>