<?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[inline class - was passiert und bringt es was?]]></title><description><![CDATA[<p>Servus,</p>
<p>habe vorhin mal spaßeshalber eine class als inline deklariert, also ungefähr so:</p>
<pre><code class="language-cpp">inline class Test
{
public:
    int a;
    int b;
};
</code></pre>
<p>Das Kompilieren hat auch perfekt funktioniert (was ich ehrlich gesagt nicht erwartet habe) - aber nun die Frage: wird sowas verwendet, was passiert genau beim Kompilieren, und hat es irgendeinen Nutzen? Also gibt es Fälle, wo sowas tatsächlich sinnvoll sein kann?</p>
<p>Die Idee kam mir deswegen, weil ich mir gerade ein komplexes Framework ausdenke mit vielen kleinen Spezialklassen, aber um die Performance wieder ein Stückweit zurückzugewinnen, habe ich so aus Spaß mal drüber nachgedacht, ob man Klassen eben auch inline definieren kann.</p>
<p>Aber ehrlich gesagt kann ich grad nicht komplex genug denken, um mir auszumalen, was der Compiler wohl mit dieser Deklaration so anstellen mag <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="😉"
    /> daher wäre es nett von euch, wenn ihr mir hierfür genauere Auskunft geben könntet <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/178970/inline-class-was-passiert-und-bringt-es-was</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 01:45:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178970.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Apr 2007 09:16:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to inline class - was passiert und bringt es was? on Tue, 17 Apr 2007 09:16:19 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>habe vorhin mal spaßeshalber eine class als inline deklariert, also ungefähr so:</p>
<pre><code class="language-cpp">inline class Test
{
public:
    int a;
    int b;
};
</code></pre>
<p>Das Kompilieren hat auch perfekt funktioniert (was ich ehrlich gesagt nicht erwartet habe) - aber nun die Frage: wird sowas verwendet, was passiert genau beim Kompilieren, und hat es irgendeinen Nutzen? Also gibt es Fälle, wo sowas tatsächlich sinnvoll sein kann?</p>
<p>Die Idee kam mir deswegen, weil ich mir gerade ein komplexes Framework ausdenke mit vielen kleinen Spezialklassen, aber um die Performance wieder ein Stückweit zurückzugewinnen, habe ich so aus Spaß mal drüber nachgedacht, ob man Klassen eben auch inline definieren kann.</p>
<p>Aber ehrlich gesagt kann ich grad nicht komplex genug denken, um mir auszumalen, was der Compiler wohl mit dieser Deklaration so anstellen mag <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="😉"
    /> daher wäre es nett von euch, wenn ihr mir hierfür genauere Auskunft geben könntet <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1267576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267576</guid><dc:creator><![CDATA[Rock Lobster]]></dc:creator><pubDate>Tue, 17 Apr 2007 09:16:19 GMT</pubDate></item><item><title><![CDATA[Reply to inline class - was passiert und bringt es was? on Tue, 17 Apr 2007 09:23:47 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Das gibt's tatsächlich? Nach meinem Verständnis ist das inline an dieser Stelle eigentlich sinnlos (wenn nicht gar verboten) - bist du sicher, daß es nicht irgendwo auf dem Weg zum Compiler weg-#define'd wurde?</p>
<p>Klassen kannst du nicht inline definieren - was soll das überhaupt bringen? Du kannst höchstens ihre Methoden inlinen, um die Arbeit zu optimieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267580</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 17 Apr 2007 09:23:47 GMT</pubDate></item><item><title><![CDATA[Reply to inline class - was passiert und bringt es was? on Tue, 17 Apr 2007 09:27:51 GMT]]></title><description><![CDATA[<p>Hmm okay also vorhin hab ich es mit Digital Mars kompiliert, und es wurde keine Meldung ausgegeben.</p>
<p>Jetzt hab ich allerdings den Microsoft-Compiler benutzt, und er bringt: &quot;warning C4091: 'inline' : Ignoriert auf der linken Seite von 'class Test', wenn keine Variable deklariert wurde&quot;</p>
<p>Soviel also dazu <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="😉"
    /> tja okay hätte ich auch früher drauf kommen können, das mit einem anderen Compiler zu testen. Oder einmal mit und einmal ohne inline compilen und dann beide .exe-Dateien vergleichen.</p>
<p>Also nix für ungut <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/1267585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267585</guid><dc:creator><![CDATA[Rock Lobster]]></dc:creator><pubDate>Tue, 17 Apr 2007 09:27:51 GMT</pubDate></item><item><title><![CDATA[Reply to inline class - was passiert und bringt es was? on Tue, 17 Apr 2007 09:28:33 GMT]]></title><description><![CDATA[<p>Nein, dass kann nicht korrekt sein...</p>
<p>das keyword ist in der Syntax als function specifier eingestuft.</p>
<p>Im Standard steht als Beschreibung des Terminals function-specifier:</p>
<blockquote>
<p>function-specifiers can be used only in function definitions</p>
</blockquote>
<p>Das gleiche gilt für virtual und explicit</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267586</guid><dc:creator><![CDATA[Paddy82]]></dc:creator><pubDate>Tue, 17 Apr 2007 09:28:33 GMT</pubDate></item><item><title><![CDATA[Reply to inline class - was passiert und bringt es was? on Tue, 17 Apr 2007 09:32:38 GMT]]></title><description><![CDATA[<p>hola</p>
<p>visual studio 2005 compiliert es auch. gibt jedoch noch ne warnung mit auf den weg</p>
<pre><code>warning C4091: 'inline ': Ignoriert auf der linken Seite von 'TestClass', wenn keine Variable deklariert wurde
</code></pre>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267590</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Tue, 17 Apr 2007 09:32:38 GMT</pubDate></item><item><title><![CDATA[Reply to inline class - was passiert und bringt es was? on Tue, 17 Apr 2007 09:34:05 GMT]]></title><description><![CDATA[<p>Ist doch ok, solange er wenigstens noch eine Warnung ausgibt,</p>
<p>Wobei es eigentlich ein Verstoß gegen die Syntax ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267591</guid><dc:creator><![CDATA[Paddy82]]></dc:creator><pubDate>Tue, 17 Apr 2007 09:34:05 GMT</pubDate></item><item><title><![CDATA[Reply to inline class - was passiert und bringt es was? on Tue, 17 Apr 2007 10:52:15 GMT]]></title><description><![CDATA[<p>Vielleicht akzeptiert der Parser das, um sein Lookahead kleiner zu halten. In folgendem Fall wäre ein 'inline' vor einer Klasse nämlich erlaubt:</p>
<pre><code class="language-cpp">inline class foo { /* ... */ } bar() {
    return foo();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1267643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267643</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Tue, 17 Apr 2007 10:52:15 GMT</pubDate></item><item><title><![CDATA[Reply to inline class - was passiert und bringt es was? on Tue, 17 Apr 2007 10:56:47 GMT]]></title><description><![CDATA[<p>Ich glaube das inline vor der Klasse bewirkt, dass alle Methoden inline werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267645</guid><dc:creator><![CDATA[_Udo_]]></dc:creator><pubDate>Tue, 17 Apr 2007 10:56:47 GMT</pubDate></item><item><title><![CDATA[Reply to inline class - was passiert und bringt es was? on Tue, 17 Apr 2007 10:57:34 GMT]]></title><description><![CDATA[<p>Das ist allerdings nicht Gegenstand des Standards....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267646</guid><dc:creator><![CDATA[Paddy82]]></dc:creator><pubDate>Tue, 17 Apr 2007 10:57:34 GMT</pubDate></item><item><title><![CDATA[Reply to inline class - was passiert und bringt es was? on Tue, 17 Apr 2007 11:11:27 GMT]]></title><description><![CDATA[<p>Im Grunde ist es falsch, da AFAIK neue Typen nicht im Rückgabetyp definiert werden dürfen. (Vor allem, wenn dann noch die komplette Funktionsdefinition fehlt. <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/1267656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267656</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Tue, 17 Apr 2007 11:11:27 GMT</pubDate></item></channel></rss>