<?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[Präprozessor: wie richtig bezeichner zusammenleimen?]]></title><description><![CDATA[<p>Servus. Folgender Code hat bei mir im MSVC immer gut funktioniert:</p>
<pre><code class="language-cpp">//Beispiel: STUB_ADPTMAP(myns,MyInput); erzeugt
// template &lt;&gt;
// struct Adaptermapping&lt;myns__MyInputType&gt;
// {
//    typedef myns::GsoapAdapterMyInputType type;
// };
#define STUB_ADPTMAP(ns,name) \
template &lt;&gt; \
struct Adaptermapping&lt;ns##__##name##Type&gt; \
{ \
   typedef ns##::GSoapAdapter##name type; \
}
STUB_ADPTMAP(myns,NumbersInput); //Zeile 28...
STUB_ADPTMAP(myns,StatusInput);
STUB_ADPTMAP(myns,StatusResult);
#undef STUB_ADPTMAP
</code></pre>
<p>Nun bekomme ich beim gcc aber folgende Meldungen:</p>
<pre><code>./stubservices.h:28:1: das Einfügen von »&lt;« und »myns« ergibt kein gültiges Präprozessor-Token
./stubservices.h:28:1: das Einfügen von »myns« und »::« ergibt kein gültiges Präprozessor-Token
./stubservices.h:29:1: das Einfügen von »&lt;« und »myns« ergibt kein gültiges Präprozessor-Token
./stubservices.h:29:1: das Einfügen von »myns« und »::« ergibt kein gültiges Präprozessor-Token
</code></pre>
<p>Wie mach ichs richtig? Ich hab ca. 54 mal STUB_ADPTMAP aufgerufen, ich will da nicht jedesmal den ganzen Schmu ausschreiben müssen...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/263605/präprozessor-wie-richtig-bezeichner-zusammenleimen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 17:14:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263605.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 23 Mar 2010 12:32:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Präprozessor: wie richtig bezeichner zusammenleimen? on Tue, 23 Mar 2010 12:32:54 GMT]]></title><description><![CDATA[<p>Servus. Folgender Code hat bei mir im MSVC immer gut funktioniert:</p>
<pre><code class="language-cpp">//Beispiel: STUB_ADPTMAP(myns,MyInput); erzeugt
// template &lt;&gt;
// struct Adaptermapping&lt;myns__MyInputType&gt;
// {
//    typedef myns::GsoapAdapterMyInputType type;
// };
#define STUB_ADPTMAP(ns,name) \
template &lt;&gt; \
struct Adaptermapping&lt;ns##__##name##Type&gt; \
{ \
   typedef ns##::GSoapAdapter##name type; \
}
STUB_ADPTMAP(myns,NumbersInput); //Zeile 28...
STUB_ADPTMAP(myns,StatusInput);
STUB_ADPTMAP(myns,StatusResult);
#undef STUB_ADPTMAP
</code></pre>
<p>Nun bekomme ich beim gcc aber folgende Meldungen:</p>
<pre><code>./stubservices.h:28:1: das Einfügen von »&lt;« und »myns« ergibt kein gültiges Präprozessor-Token
./stubservices.h:28:1: das Einfügen von »myns« und »::« ergibt kein gültiges Präprozessor-Token
./stubservices.h:29:1: das Einfügen von »&lt;« und »myns« ergibt kein gültiges Präprozessor-Token
./stubservices.h:29:1: das Einfügen von »myns« und »::« ergibt kein gültiges Präprozessor-Token
</code></pre>
<p>Wie mach ichs richtig? Ich hab ca. 54 mal STUB_ADPTMAP aufgerufen, ich will da nicht jedesmal den ganzen Schmu ausschreiben müssen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1872903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1872903</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 23 Mar 2010 12:32:54 GMT</pubDate></item><item><title><![CDATA[Reply to Präprozessor: wie richtig bezeichner zusammenleimen? on Tue, 23 Mar 2010 12:35:02 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#define ID(x) x
#define CONCAT2(a,b) ID(a)ID(b)
</code></pre>
<p>Versuch das mal <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/1872906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1872906</guid><dc:creator><![CDATA[YASC]]></dc:creator><pubDate>Tue, 23 Mar 2010 12:35:02 GMT</pubDate></item><item><title><![CDATA[Reply to Präprozessor: wie richtig bezeichner zusammenleimen? on Tue, 23 Mar 2010 12:58:26 GMT]]></title><description><![CDATA[<p>YASC schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#define ID(x) x
#define CONCAT2(a,b) ID(a)ID(b)
</code></pre>
<p>Versuch das mal <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>Naja wäre etwas arg kompliziert... Ich hab jetzt einfach hinter der öffnenden Templateklammer ein blank gesetzt und die ## vor den :: rausgenommen. Codepad schluckts jetzt, mal schauen was unser Integrations-GCC dazu sagt <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/1872921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1872921</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 23 Mar 2010 12:58:26 GMT</pubDate></item><item><title><![CDATA[Reply to Präprozessor: wie richtig bezeichner zusammenleimen? on Tue, 23 Mar 2010 14:33:09 GMT]]></title><description><![CDATA[<p>Mit ## können nur gültige PP-Namen zusammengesetzt werden, d.h. alphanumerische bzw. der Unterstrich '_').</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1872972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1872972</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Tue, 23 Mar 2010 14:33:09 GMT</pubDate></item><item><title><![CDATA[Reply to Präprozessor: wie richtig bezeichner zusammenleimen? on Tue, 23 Mar 2010 14:39:30 GMT]]></title><description><![CDATA[<p>Th69 schrieb:</p>
<blockquote>
<p>Mit ## können nur gültige PP-Namen zusammengesetzt werden, d.h. alphanumerische bzw. der Unterstrich '_').</p>
</blockquote>
<p>Jein - es geht um gültige Token. Sowohl &lt; als auch :: sind jeweils eigene Token, die man nicht an irgendwelche alphanumerischen Identifyer kleben sollte <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/1872976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1872976</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 23 Mar 2010 14:39:30 GMT</pubDate></item></channel></rss>