<?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[Ein Makro der seltenen Art?]]></title><description><![CDATA[<p>Hallo</p>
<p>ich will in meinem Quellcode Copy-Paste-Fehler vermeiden, weil ich folgendes entsprechend jetzt zigmal haben werde</p>
<pre><code>aHsDyn.Pos.Lat = InterpolateAngleData(aIt_alt-&gt;second.Pos.Lat,aIt_neu-&gt;second.Pos.Lat );
aHsDyn.Pos.Lon = InterpolateAngleData(aIt_alt-&gt;second.Pos.Lon,aIt_neu-&gt;second.Pos.Lon );
</code></pre>
<p>In der 1.Zeile ist &quot;Pos.Lat&quot; 3mal enthalten.<br />
In der 2. Zeile ist &quot;Pos.Lon&quot; 3mal enthalten.</p>
<p>Deshalb dachte ich, da wird doch ein Makro das Leben vereinfachen und habe folgendes versucht.</p>
<pre><code>#define INTERPOL_ANGLE(NAME) aHsDyn.##NAME = InterpolateAngleData((double)aIt_alt-&gt;second.##NAME,(double)aIt_neu-&gt;second.##NAME )

INTERPOL_ANGLE(Pos.Lat);
</code></pre>
<p>Aber ich bekomme den Fehler(3x) für das makro</p>
<blockquote>
<p>error: pasting &quot;.&quot; and &quot;Pos&quot; does not give a valid preprocessing token</p>
</blockquote>
<p>ich vermute, dass bedeutet, dass die Kombination &quot;.##NAME&quot; nicht zulässig ist...aber warm nicht?</p>
<p>Ich habe nun noch versucht mittels &quot;( )&quot; und ähnlichen den Fehler loszuwerden, aber es hat auch nichts geholfen.</p>
<p>langsam glaube ich, dass das, was ich machen will, nicht geht.</p>
<p>Hat jemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306484/ein-makro-der-seltenen-art</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 05:25:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306484.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 Jul 2012 12:29:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 12:39:41 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich will in meinem Quellcode Copy-Paste-Fehler vermeiden, weil ich folgendes entsprechend jetzt zigmal haben werde</p>
<pre><code>aHsDyn.Pos.Lat = InterpolateAngleData(aIt_alt-&gt;second.Pos.Lat,aIt_neu-&gt;second.Pos.Lat );
aHsDyn.Pos.Lon = InterpolateAngleData(aIt_alt-&gt;second.Pos.Lon,aIt_neu-&gt;second.Pos.Lon );
</code></pre>
<p>In der 1.Zeile ist &quot;Pos.Lat&quot; 3mal enthalten.<br />
In der 2. Zeile ist &quot;Pos.Lon&quot; 3mal enthalten.</p>
<p>Deshalb dachte ich, da wird doch ein Makro das Leben vereinfachen und habe folgendes versucht.</p>
<pre><code>#define INTERPOL_ANGLE(NAME) aHsDyn.##NAME = InterpolateAngleData((double)aIt_alt-&gt;second.##NAME,(double)aIt_neu-&gt;second.##NAME )

INTERPOL_ANGLE(Pos.Lat);
</code></pre>
<p>Aber ich bekomme den Fehler(3x) für das makro</p>
<blockquote>
<p>error: pasting &quot;.&quot; and &quot;Pos&quot; does not give a valid preprocessing token</p>
</blockquote>
<p>ich vermute, dass bedeutet, dass die Kombination &quot;.##NAME&quot; nicht zulässig ist...aber warm nicht?</p>
<p>Ich habe nun noch versucht mittels &quot;( )&quot; und ähnlichen den Fehler loszuwerden, aber es hat auch nichts geholfen.</p>
<p>langsam glaube ich, dass das, was ich machen will, nicht geht.</p>
<p>Hat jemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236881</guid><dc:creator><![CDATA[HeroHolger]]></dc:creator><pubDate>Mon, 30 Jul 2012 12:39:41 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 12:39:53 GMT]]></title><description><![CDATA[<p>Du willst hier keine Makros, dadurch machst du dir das Leben nur schwerer.</p>
<pre><code class="language-cpp">PosType InterpolateAngleData(const &amp;PosType oldval, const &amp;PosType newval)
{
 // Hier das hin, was deine beiden Zeilen effektiv gemacht haben
}

// [...]

aHsDyn.Pos = InterpolateAngleData(aIt_alt-&gt;second.Pos, aIt_neu-&gt;second.Pos);
</code></pre>
<p>Da ich nicht genau weiß, was die Sachen genau sein sollen, kann dieser Vorschlag unpassend sein, jedoch sollte er dir eine designtechnisch bessere Richtung zeigen.</p>
<p>P.S.:</p>
<ol>
<li><code>aHsDyn</code> ? Ist das etwa ungarische Notation? Wozu?</li>
<li><code>aHsDyn.Pos = ...</code> Ist bei deinen Klassen alles public? Wie wäre es mit etwas Kapselung?</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/2236890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236890</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 30 Jul 2012 12:39:53 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 12:47:33 GMT]]></title><description><![CDATA[<p>hi und erstmal danke für die schnelle Antwort</p>
<p>1. bitte keine Notationsdiskussion</p>
<p>2. das sind keine Klassen sondern große IF-Strukturen(c-typen) die im Netzwerk verschickt werden.</p>
<p>3. Deine Beispielmethode ist das Äquivalent zu meiner Methode mti dem namen<br />
&quot;InterpolateAngleData&quot; und würde nicht das Copy/Paste-Problem lösen.</p>
<p>Ich suche allerdings eine Lösung wo ich nicht 3x den Variablennamen schreiben muss.<br />
so halt irgendwie</p>
<pre><code>INTERPOL_ANGLE(Pos.Lat);
</code></pre>
<p>Ein Template hilft da m.E. übrigens auch nicht.</p>
<p>Und immer drann denken, wir reden hier nicht nur von den 2 exemplarischen Zeilen sondern von Vielen Zeilen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236894</guid><dc:creator><![CDATA[HeroHolger]]></dc:creator><pubDate>Mon, 30 Jul 2012 12:47:33 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 12:46:22 GMT]]></title><description><![CDATA[<p>HeroHolger schrieb:</p>
<blockquote>
<p>1. bitte keine Notationsdiskussion</p>
</blockquote>
<p>Angst, dass deine Notation nichts taugt?</p>
<blockquote>
<p>2. das sind keine Klassen sondern große IF-Strukturen(c-typen) die im Netzwerk verschickt werden.</p>
</blockquote>
<p>Ok, das ist doch schon mal was.</p>
<blockquote>
<p>3. Deine Beispielmethode ist das Äquivalent zu meiner Methode mti dem namen<br />
&quot;InterpolateAngleData&quot; und würde nicht das Copy/Paste-Problem lösen.</p>
</blockquote>
<p>Doch, denn du müsstest es nur ein einziges Mal richtig hinschreiben, dann benutzt du immer die Methode. Das ist die gleiche Idee wie mit den Makros, nur ohne die Probleme von Makros.</p>
<blockquote>
<p>Ich suche allerdings eine Lösung wo ich nicht 3x den Variablennamen schreiben muss.<br />
so halt irgendwie</p>
<pre><code>INTERPOL_ANGLE(Pos.Lat);
</code></pre>
</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="😕"
    /> Das leistet die Funktion doch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236896</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 30 Jul 2012 12:46:22 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 12:48:37 GMT]]></title><description><![CDATA[<p>zu 3. nein, das tut sie nicht.</p>
<p>du musst 3x mal den Variablennamen hinschreiben. und das will ich eben nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236899</guid><dc:creator><![CDATA[HeroHolger]]></dc:creator><pubDate>Mon, 30 Jul 2012 12:48:37 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 12:51:20 GMT]]></title><description><![CDATA[<p>HeroHolger schrieb:</p>
<blockquote>
<pre><code>aHsDyn.Pos.Lat = InterpolateAngleData(aIt_alt-&gt;second.Pos.Lat,aIt_neu-&gt;second.Pos.Lat );
aHsDyn.Pos.Lon = InterpolateAngleData(aIt_alt-&gt;second.Pos.Lon,aIt_neu-&gt;second.Pos.Lon );
</code></pre>
<p>[...]</p>
<pre><code>#define INTERPOL_ANGLE(NAME) aHsDyn.##NAME = InterpolateAngleData((double)aIt_alt-&gt;second.##NAME,(double)aIt_neu-&gt;second.##NAME )

INTERPOL_ANGLE(Pos.Lat);
</code></pre>
</blockquote>
<p>Was erhoffst du dir von dem ##-Operator? Lass den mal weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236901</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 30 Jul 2012 12:51:20 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 13:01:16 GMT]]></title><description><![CDATA[<p>HeroHolger schrieb:</p>
<blockquote>
<p>Aber ich bekomme den Fehler(3x) für das makro</p>
<blockquote>
<p>error: pasting &quot;.&quot; and &quot;Pos&quot; does not give a valid preprocessing token</p>
</blockquote>
<p>ich vermute, dass bedeutet, dass die Kombination &quot;.##NAME&quot; nicht zulässig ist...aber warm nicht?</p>
</blockquote>
<p>Die Fehlermeldung ist eigentlich eindeutig. Die einzigen Token, die mit . beginnen, sind die . und .* Operatoren, die ... Ellipse, sowie bestimmte (Gleitkomma-)Literale.<br />
Verlier einfach den ##-Operator an dieser Stelle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236902</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:01:16 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 12:54:28 GMT]]></title><description><![CDATA[<p>Ansonsten schreibst Du dreimal das Makro im Text.<br />
Eine Funktion/Mehtode ist definitiv der bessere Weg.<br />
Makros sind mies (persönliche Meinung und Erfahrung)<br />
Makros &amp; objektorientierte Programmierung sind scheisse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236903</guid><dc:creator><![CDATA[bjarne_rolliert]]></dc:creator><pubDate>Mon, 30 Jul 2012 12:54:28 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 12:57:42 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a> + <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/904">@Bashar</a></p>
<blockquote>
<p>Was erhoffst du dir von dem ##-Operator? Lass den mal weg.</p>
</blockquote>
<p>schaust du hier<br />
<a href="http://gcc.gnu.org/onlinedocs/cpp/Concatenation.html#Concatenation" rel="nofollow">http://gcc.gnu.org/onlinedocs/cpp/Concatenation.html#Concatenation</a></p>
<p>so in etwa will ich das haben. ohne ## kommst du m.E. nicht weit.</p>
<p>Wenn du ohne ## arbeitest weiß der precompiler garnicht, was du machen willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236904</guid><dc:creator><![CDATA[HeroHolger]]></dc:creator><pubDate>Mon, 30 Jul 2012 12:57:42 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 13:03:40 GMT]]></title><description><![CDATA[<p>HeroHolger schrieb:</p>
<blockquote>
<p>ohne ## kommst du m.E. nicht weit.</p>
</blockquote>
<p>Tu's doch einfach... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236908</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:03:40 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 13:06:22 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/8250">@Swordfish</a>: oha, manchmal ist die Lösung doch so nahe. er scheint das wirklich zu akzeptieren ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236911</guid><dc:creator><![CDATA[HeroHolger]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:06:22 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 13:06:32 GMT]]></title><description><![CDATA[<p>HeroHolger schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a> + <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/904">@Bashar</a></p>
<blockquote>
<p>Was erhoffst du dir von dem ##-Operator? Lass den mal weg.</p>
</blockquote>
<p>schaust du hier<br />
<a href="http://gcc.gnu.org/onlinedocs/cpp/Concatenation.html#Concatenation" rel="nofollow">http://gcc.gnu.org/onlinedocs/cpp/Concatenation.html#Concatenation</a></p>
<p>so in etwa will ich das haben. ohne ## kommst du m.E. nicht weit.</p>
<p>Wenn du ohne ## arbeitest weiß der precompiler garnicht, was du machen willst.</p>
</blockquote>
<p>Welcher Precompiler?<br />
Der Link beantwortet übrigens nicht die Frage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236912</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:06:32 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 13:11:01 GMT]]></title><description><![CDATA[<p>HeroHolger schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a> + <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/904">@Bashar</a></p>
<blockquote>
<p>Was erhoffst du dir von dem ##-Operator? Lass den mal weg.</p>
</blockquote>
<p>schaust du hier<br />
<a href="http://gcc.gnu.org/onlinedocs/cpp/Concatenation.html#Concatenation" rel="nofollow">http://gcc.gnu.org/onlinedocs/cpp/Concatenation.html#Concatenation</a></p>
</blockquote>
<p>Du bist ja mal ein Scherzkeks <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236914</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:11:01 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 13:12:15 GMT]]></title><description><![CDATA[<p>ok</p>
<p>Danke erstmal nochmal an Alle die mir geholfen!</p>
<p>Thread kann zugemacht werden.</p>
<p>Der Fehler saß wie üblich vorm Monitor ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236917</guid><dc:creator><![CDATA[HeroHolger]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:12:15 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Makro der seltenen Art? on Mon, 30 Jul 2012 14:32:38 GMT]]></title><description><![CDATA[<p>HeroHolger schrieb:</p>
<blockquote>
<p>Der Fehler saß wie üblich vorm Monitor ^^</p>
</blockquote>
<p>Die kanonische Variante wäre &quot;Fehler existiert zwischen Tastatur und Sessel&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236949</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 30 Jul 2012 14:32:38 GMT</pubDate></item></channel></rss>