<?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[#include in Makro]]></title><description><![CDATA[<p>Hi.<br />
Ist es möglich (in Visual Studio 2008, also mit dem VC++ Compiler) es irgendwie hinzukriegen, in ein Makro eine Include-Anweisung zu packen?</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">#define bla(x) \
    #include &lt;Headers/##x.hpp&gt;
    mach_was(); \
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/256454/include-in-makro</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 21:08:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/256454.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 13 Dec 2009 01:04:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to #include in Makro on Sun, 13 Dec 2009 01:04:48 GMT]]></title><description><![CDATA[<p>Hi.<br />
Ist es möglich (in Visual Studio 2008, also mit dem VC++ Compiler) es irgendwie hinzukriegen, in ein Makro eine Include-Anweisung zu packen?</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">#define bla(x) \
    #include &lt;Headers/##x.hpp&gt;
    mach_was(); \
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1821826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1821826</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Sun, 13 Dec 2009 01:04:48 GMT</pubDate></item><item><title><![CDATA[Reply to #include in Makro on Sun, 13 Dec 2009 01:22:32 GMT]]></title><description><![CDATA[<p>Soweit ich weiß nicht, warum sollte man das schreiben? o0<br />
:xmas1: :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1821831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1821831</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sun, 13 Dec 2009 01:22:32 GMT</pubDate></item><item><title><![CDATA[Reply to #include in Makro on Sun, 13 Dec 2009 01:35:21 GMT]]></title><description><![CDATA[<p>Hi.<br />
Schade, trotzdem danke <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="🙂"
    /><br />
Es geht mir darum, dass ich für jedes Modul in meinem Projekt gerne einen Eintrag in einer globalen Includedatei machen würde, der so oder ähnlich aussieht:</p>
<pre><code class="language-cpp">INC_AND_INIT(Modulename);
</code></pre>
<p>Wenn das mit dem #include nicht geht, müsste ich immer</p>
<pre><code class="language-cpp">#include &lt;Headers/Modulename.hpp&gt;
INIT(Modulename);
</code></pre>
<p>schreiben, und das ist auf dauer etwas nervig <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>Edit: Ah, ein VALVe Programmierbar <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>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1821833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1821833</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Sun, 13 Dec 2009 01:35:21 GMT</pubDate></item><item><title><![CDATA[Reply to #include in Makro on Sun, 13 Dec 2009 02:10:26 GMT]]></title><description><![CDATA[<p>theliquidwave schrieb:</p>
<blockquote>
<p>Edit: Ah, ein VALVe Programmierbar</p>
</blockquote>
<p>Das glaube ich ihm erst, wenn ich es sehe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1821840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1821840</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 13 Dec 2009 02:10:26 GMT</pubDate></item><item><title><![CDATA[Reply to #include in Makro on Sun, 13 Dec 2009 02:16:18 GMT]]></title><description><![CDATA[<p>Hi.<br />
Das war nicht darauf bezogen, dass er bei VALVe arbeitet, sondern dass er etwas mit deren Produkte zu tun hat (ich vermute mal die HL1 Engine oder Source Engine) - wegen seiner Signatur <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>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1821841</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1821841</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Sun, 13 Dec 2009 02:16:18 GMT</pubDate></item><item><title><![CDATA[Reply to #include in Makro on Sun, 13 Dec 2009 03:30:41 GMT]]></title><description><![CDATA[<p>Ja, ich bin toll <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1821851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1821851</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sun, 13 Dec 2009 03:30:41 GMT</pubDate></item><item><title><![CDATA[Reply to #include in Makro on Sun, 13 Dec 2009 19:46:29 GMT]]></title><description><![CDATA[<p>theliquidwave schrieb:</p>
<blockquote>
<p>Hi.<br />
sondern dass er etwas mit deren Produkte zu tun hat (ich vermute mal die HL1 Engine oder Source Engine) - wegen seiner Signatur <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>Auch das glaube ich erst wenn ich es sehe.<br />
Quasti ist ein Angeber.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1822112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1822112</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 13 Dec 2009 19:46:29 GMT</pubDate></item><item><title><![CDATA[Reply to #include in Makro on Sun, 13 Dec 2009 20:37:39 GMT]]></title><description><![CDATA[<p>Wenn dich das &quot;&lt;headers/&quot; so stört, dann füge diesen header-Pfad doch zu den nach Headerdateien zu durchsuchenden Pfaden hinzu. Dann schreibst du nur noch</p>
<blockquote>
<p>&lt;modulname.hpp&gt;</p>
</blockquote>
<p>Eine weitere Alternative bestände im klassischen C&amp;P.</p>
<p>Daneben kann ich es mir nur schwer vorstellen, dass man regelmäßig so häufig Header einbinden muss, als das man dies wirklich als nervig bezeichnen kann <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/1822124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1822124</guid><dc:creator><![CDATA[Kahino]]></dc:creator><pubDate>Sun, 13 Dec 2009 20:37:39 GMT</pubDate></item><item><title><![CDATA[Reply to #include in Makro on Sun, 13 Dec 2009 22:20:04 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Quasti ist ein Angeber.</p>
</blockquote>
<p>Falls das an mich gerichtet war: Ich weiß ja das du mich nicht besonders magst, warum auch immer, aber warum versuchst du mich dauernd runterzumachen? Ahja, den Link habe ich dadrin weil ich Fan von Valve's Produkten bin und die developer-Seite hier ganz gut reinpasst(e).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1822144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1822144</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sun, 13 Dec 2009 22:20:04 GMT</pubDate></item><item><title><![CDATA[Reply to #include in Makro on Mon, 14 Dec 2009 06:49:02 GMT]]></title><description><![CDATA[<p>hustbaer und Kóyaánasqatsi, es wäre nett wenn ihr eure Differenzen an anderer Stelle klären könntet.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/26836">@Topic</a>: mir erscheint es etwas fragwürdig, was du da machen willst. Zum einen kann man die mach_was()-Funktion eh nicht im globalen Namensraum einfach so aufrufen. Zum anderen ist das recht seltsam wenn du du mehrere deiner Module mit dem selben Befehl initialisieren musst und das außerhalb des Modulheaders. Wenn du eine Initialisierung pro Übersetzungseinheit in deinem Projekt brauchst dann pack den entsprechendend Code in den Header des Moduls. Wenns nur einmal im ganzen Programm sein soll dann packs in die .cpp-Datei(en) des Moduls. Das von den Klienten des Moduls zu erwarten ist in 95% der Fälle schlechter Stil.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1822188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1822188</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 14 Dec 2009 06:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to #include in Makro on Mon, 14 Dec 2009 07:35:01 GMT]]></title><description><![CDATA[<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-255464.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-255464.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1822193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1822193</guid><dc:creator><![CDATA[C++ Fan 2009]]></dc:creator><pubDate>Mon, 14 Dec 2009 07:35:01 GMT</pubDate></item><item><title><![CDATA[Reply to #include in Makro on Mon, 14 Dec 2009 15:48:01 GMT]]></title><description><![CDATA[<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>...warum auch immer...</p>
</blockquote>
<p>Das Problem ist, dass du ab und zu ziemlich unfreundlich wirkst und selbst den grossen Kenner raushängst, ohne viel von einer Sache zu verstehen.</p>
<p>Wäre wirklich nett, wenn du dich etwas darauf achten könntest. Ich bin sicher, dann wirst du auch nicht mehr von anderen Leuten doof angemacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1822390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1822390</guid><dc:creator><![CDATA[Himmelhaus]]></dc:creator><pubDate>Mon, 14 Dec 2009 15:48:01 GMT</pubDate></item><item><title><![CDATA[Reply to #include in Makro on Mon, 14 Dec 2009 18:35:40 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20378">@theliquidwave</a>:<br />
Zum Thema: Das Initialisieren von Modulen ist meist noch relativ einfach (*).<br />
Kann man z.B. über folgenden Trick machen:</p>
<pre><code class="language-cpp">// Header &quot;module1.hpp&quot;:

namespace module1
{

int Init();

namespace
{

#ifndef COMPILING_MODULE1
extern int volatile g_initDummy = ::module1::Init();
#endif

// Alternative:

struct InitHelper
{
    InitHelper()
    {
        ::module1::Init();
    }
};

InitHelper g_initHelper;

} // namespace

} // namespace module1
</code></pre>
<p>Und natürlich kann man auch oft die Initialisierung erst zu dem Zeitpunkt machen, wo die 1. Funktion des Moduls verwendet wird. Dazu bietet sich z.B. boost::call_once an (aus der Thread-Library).</p>
<p>EDIT: *: der schwierigere Teil ist IMO, einen geeigneten Zeitpunkt zum Aufräumen zu finden, falls es irgendwas gibt was aufgeräumt werden soll/muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1822462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1822462</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 14 Dec 2009 18:35:40 GMT</pubDate></item></channel></rss>