<?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[Wie viele Schlüsselwörter könnt ihr in aneinanderreihen]]></title><description><![CDATA[<p>Mir war grad langweilig, und da hab ich mich gefragt wie viele Schlüssewörter ich in C++ nur durch ein Leerzeichen getrennt hintereinander schreiben kann.<br />
Ich schaffe zurzeit 7. Wie viele schafft ihr? Schlüsselwörter ist alles was hier aufgelistet ist: <a href="http://en.cppreference.com/w/cpp/keyword" rel="nofollow">http://en.cppreference.com/w/cpp/keyword</a><br />
Und natürlich zählen Schlüsselwörter in Kommentaren nicht dazu. Es muss in einer &quot;regulären Codezeile&quot; sein.</p>
<p>Zusatz: Wenn nicht nur Leerzeichen sondern auch noch durch -&gt; und * getrennt werden darf schaffe ich 10.</p>
<p>Viel Spaß beim ausprobieren.</p>
<p>Meine Lösung: <a href="http://ideone.com/z9vDak" rel="nofollow">http://ideone.com/z9vDak</a></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/337419/wie-viele-schlüsselwörter-könnt-ihr-in-aneinanderreihen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 01:17:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337419.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 31 Mar 2016 21:54:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Thu, 31 Mar 2016 21:54:32 GMT]]></title><description><![CDATA[<p>Mir war grad langweilig, und da hab ich mich gefragt wie viele Schlüssewörter ich in C++ nur durch ein Leerzeichen getrennt hintereinander schreiben kann.<br />
Ich schaffe zurzeit 7. Wie viele schafft ihr? Schlüsselwörter ist alles was hier aufgelistet ist: <a href="http://en.cppreference.com/w/cpp/keyword" rel="nofollow">http://en.cppreference.com/w/cpp/keyword</a><br />
Und natürlich zählen Schlüsselwörter in Kommentaren nicht dazu. Es muss in einer &quot;regulären Codezeile&quot; sein.</p>
<p>Zusatz: Wenn nicht nur Leerzeichen sondern auch noch durch -&gt; und * getrennt werden darf schaffe ich 10.</p>
<p>Viel Spaß beim ausprobieren.</p>
<p>Meine Lösung: <a href="http://ideone.com/z9vDak" rel="nofollow">http://ideone.com/z9vDak</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2491973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2491973</guid><dc:creator><![CDATA[floorball]]></dc:creator><pubDate>Thu, 31 Mar 2016 21:54:32 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Thu, 31 Mar 2016 22:47:14 GMT]]></title><description><![CDATA[<p>final und override sind keine Schlüsselwörter.</p>
<pre><code class="language-cpp">compl compl compl compl compl compl /* usw. */ 0;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2491979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2491979</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 31 Mar 2016 22:47:14 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Fri, 01 Apr 2016 01:02:33 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">const int*const*const*const*const*const*const*const*const*const*const*const*const*const*const*const*const*const foo = 0;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2491987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2491987</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 01 Apr 2016 01:02:33 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Fri, 01 Apr 2016 09:53:31 GMT]]></title><description><![CDATA[<pre><code>if(true); else do extern constexpr const volatile unsigned long long int n(); while(false);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2492014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492014</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Fri, 01 Apr 2016 09:53:31 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Fri, 01 Apr 2016 10:44:46 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>final und override sind keine Schlüsselwörter.</p>
<pre><code class="language-cpp">compl compl compl compl compl compl /* usw. */ 0;
</code></pre>
</blockquote>
<p>Ich musste erstmal schauen was <code>compl</code> sein soll... Für mich ist das gar kein &quot;echtes&quot; Keyword. Ich würde <code>compl</code> durch <code>sizeof</code> tauschen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492016</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Fri, 01 Apr 2016 10:44:46 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Fri, 01 Apr 2016 12:50:32 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct test
{
  test &amp; operator*(test &amp;)
  {
    return *this**this**this**this**this**this**this**this**this**this**this**this;
  }
};
</code></pre>
<p>Zählt das auch?</p>
<pre><code class="language-cpp">static_cast&lt;int&gt;(static_cast&lt;int&gt;(static_cast&lt;int&gt;(static_cast&lt;int&gt;(true))));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2492024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492024</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Fri, 01 Apr 2016 12:50:32 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Fri, 01 Apr 2016 13:45:55 GMT]]></title><description><![CDATA[<p>Sinn macht dieser Thread wohl nur, wenn man sich auf möglichst viele verschiedene Schlüssewörter beschränkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492036</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Fri, 01 Apr 2016 13:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Fri, 01 Apr 2016 19:53:36 GMT]]></title><description><![CDATA[<p>Th69 schrieb:</p>
<blockquote>
<p>Sinn macht dieser Thread wohl nur, wenn man sich auf möglichst viele verschiedene Schlüssewörter beschränkt.</p>
</blockquote>
<pre><code class="language-cpp">template &lt;typename T&gt; struct foo;
template &lt;typename T&gt; struct bar
{
    explicit inline virtual constexpr operator const volatile unsigned long int() const volatile noexcept try
    {
        if(true);
        else do return throw this xor nullptr and sizeof true or false bitand compl not new volatile signed long int bitor typename decltype
        (foo&lt;T&gt;::bar)::bar(); while(false);
    }
    catch (...)
    {
    }
};
</code></pre>
<p>Die Illuminati sind schuld.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492064</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 01 Apr 2016 19:53:36 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sat, 02 Apr 2016 04:04:06 GMT]]></title><description><![CDATA[<p>Bitte ein ausführbares Programm also mit der main()<br />
und als Wettbewerb die meisten verschiedenen Schlüsselwörter in Folge<br />
und</p>
<pre><code>//start
</code></pre>
<p>davor und</p>
<pre><code>//end
</code></pre>
<p>danach.</p>
<p>Erst dann kann man sinnvoll vergleichen.</p>
<p>Außerdem zwei Klassen:</p>
<p>Klasse A: In der heftigen Zeile sind Sonderzeichen, Klammern, Operatorzeichen und eben alles so erlaubt. Auch wiederholte keywords, die werden dann aber nur einmal gezählt.</p>
<p>Klasse B: In der heftigen Zeile sind NUR Schlüsselwörter durch je ein Leerzeichen getrennt erlaubt, keine Doppelnennungen.</p>
<p>Für die B-Klasse melöde ich mal mich und Arcoth an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492067</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 02 Apr 2016 04:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Fri, 01 Apr 2016 21:15:15 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a>: Teste deinen Code mal. Eine <code>constexpr</code> Funktion darf nicht als <code>virtual</code> definiert werden ([dcl.constexpr]/(3.1)). Im Übrigen sind <code>xor</code> usw. keine keywords.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492069</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Fri, 01 Apr 2016 21:15:15 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Fri, 01 Apr 2016 21:31:34 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a><br />
Dürfen Keywords wiederholt werden (und werden dann bloss nicht mehrfach gezählt), oder darf jedes Keyword in der bewerteten Zeile max. 1x vorkommen?</p>
<p>Speziell für Klasse A könnte das nen Unterschied machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492073</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 01 Apr 2016 21:31:34 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Fri, 01 Apr 2016 21:55:58 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#define int(int) int
#define short main
#define long x
#define double y
//start
int(int(int(int(int(int(int(int(int(int(int)))))))))) 
short(int(int(int(int(int(int(int(int(int(int(int))))))))))long,
     int(int(int(int(int(int(int(int(int(int(int))))))))))double){};
//end
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2492077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492077</guid><dc:creator><![CDATA[klassenmethode]]></dc:creator><pubDate>Fri, 01 Apr 2016 21:55:58 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Fri, 01 Apr 2016 22:44:15 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a>: Teste deinen Code mal. Eine <code>constexpr</code> Funktion darf nicht als <code>virtual</code> definiert werden ([dcl.constexpr]/(3.1)).</p>
</blockquote>
<p>ok, hab nur mit gcc getestet. Dann eben bloss eine Deklaration</p>
<pre><code class="language-cpp">struct baz
{
    explicit inline virtual constexpr operator const volatile unsigned long int() const volatile noexcept = 0;
};
</code></pre>
<p>Arcoth schrieb:</p>
<blockquote>
<p>Im Übrigen sind <code>xor</code> usw. keine keywords.</p>
</blockquote>
<p>Zitat?</p>
<p>Sie werden in lex.key aufgezählt und genügen wohl auch der (rekursiven) Definition im ersten Paragrafen (unconditionally treated as keywords).</p>
<p>Interessanterweise definiert Anhang A diese Kategorie nicht (sie wird allerdings wohl auch nirgendwo gebraucht).</p>
<p>Im Übrigen habe ich mich an die Definition des ersten Posts gehalten (enthaltehn in verlinkter Liste).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492079</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 01 Apr 2016 22:44:15 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sat, 02 Apr 2016 04:09:43 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a><br />
Dürfen Keywords wiederholt werden (und werden dann bloss nicht mehrfach gezählt), oder darf jedes Keyword in der bewerteten Zeile max. 1x vorkommen?</p>
<p>Speziell für Klasse A könnte das nen Unterschied machen.</p>
</blockquote>
<p>Bei A ja, Wiederholungen erlaubt (und nur einmal gezählt), dort isses ist eh recht formfrei.</p>
<p>Bei B nein, Wiederholungen nicht erlaubt, das würde zu viel der Eleganz rauben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492083</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 02 Apr 2016 04:09:43 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sat, 02 Apr 2016 08:49:16 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a><br />
Dürfen Keywords wiederholt werden (und werden dann bloss nicht mehrfach gezählt), oder darf jedes Keyword in der bewerteten Zeile max. 1x vorkommen?</p>
<p>Speziell für Klasse A könnte das nen Unterschied machen.</p>
</blockquote>
<p>Bei A ja, Wiederholungen erlaubt (und nur einmal gezählt), dort isses ist eh recht formfrei.</p>
<p>Bei B nein, Wiederholungen nicht erlaubt, das würde zu viel der Eleganz rauben.</p>
</blockquote>
<p>Klasse A ist zu frei. Ein ganzes Programm passt in eine Zeile und kann sicher jedes Schlüsselwort verwenden. Zumindest Semikolons sollten wohl ausgeschlossen werden. Und mit Wiederholen kann beliebig rekursiv deklariert werden</p>
<pre><code class="language-cpp">#define x template&lt;
#define y &gt;class
//start
x x x x x x x x x x x x x x x x x x x x int y y y y y y y y y y y y y y y y y y y y
//end
foo;
int main();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2492094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492094</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 02 Apr 2016 08:49:16 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sat, 02 Apr 2016 09:29:54 GMT]]></title><description><![CDATA[<p>Und <code>#define</code> sollte vermutlich ausgeschlossen werden. Bzw. am besten gleich der ganze PP.<br />
Sonst schreibe ich</p>
<pre><code class="language-cpp">//start
#define blub int short long double float char signed unsigned template class struct typename for while if switch case do return const mutable volatile ...
//end
</code></pre>
<p>oder halt</p>
<pre><code class="language-cpp">#define NIX(x)
NIX(
//start
int short long double float char signed unsigned template class struct typename for while if switch case do return const mutable volatile ...
//end
)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2492096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492096</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 02 Apr 2016 09:29:54 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sat, 02 Apr 2016 09:44:23 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a>: Teste deinen Code mal. Eine <code>constexpr</code> Funktion darf nicht als <code>virtual</code> definiert werden ([dcl.constexpr]/(3.1)).</p>
</blockquote>
<p>ok, hab nur mit gcc getestet. Dann eben bloss eine Deklaration</p>
<pre><code class="language-cpp">struct baz
{
    explicit inline virtual constexpr operator const volatile unsigned long int() const volatile noexcept = 0;
};
</code></pre>
</blockquote>
<p>Das ist nach wie vor Quatsch, und die Tatsache, dass es nicht vom zitierten Paragraphen behandelt wird, ein Defekt.</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p>Im Übrigen sind <code>xor</code> usw. keine keywords.</p>
</blockquote>
<p>Zitat?</p>
</blockquote>
<p>Sie sind <em>punctuator</em>s. Siehe auch [lex.operators].</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492098</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sat, 02 Apr 2016 09:44:23 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sat, 02 Apr 2016 14:46:04 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a>: Teste deinen Code mal. Eine <code>constexpr</code> Funktion darf nicht als <code>virtual</code> definiert werden ([dcl.constexpr]/(3.1)).</p>
</blockquote>
<p>ok, hab nur mit gcc getestet. Dann eben bloss eine Deklaration</p>
<pre><code class="language-cpp">struct baz
{
    explicit inline virtual constexpr operator const volatile unsigned long int() const volatile noexcept = 0;
};
</code></pre>
</blockquote>
<p>Das ist nach wie vor Quatsch, und die Tatsache, dass es nicht vom zitierten Paragraphen behandelt wird, ein Defekt.</p>
</blockquote>
<p>Natürlich ist es <em>Quatsch</em>. Aber wieso sollte das eine Rolle spielen?</p>
<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p>Im Übrigen sind <code>xor</code> usw. keine keywords.</p>
</blockquote>
<p>Zitat?</p>
</blockquote>
<p>Sie sind <em>punctuator</em>s. Siehe auch [lex.operators].</p>
</blockquote>
<p>Ja und? Schließt sich das gegenseitig aus? new und delete sind bei dir auch keine Schlüsselwörter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492123</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 02 Apr 2016 14:46:04 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sat, 02 Apr 2016 17:22:23 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a>: Teste deinen Code mal. Eine <code>constexpr</code> Funktion darf nicht als <code>virtual</code> definiert werden ([dcl.constexpr]/(3.1)).</p>
</blockquote>
<p>ok, hab nur mit gcc getestet. Dann eben bloss eine Deklaration</p>
<pre><code class="language-cpp">struct baz
{
    explicit inline virtual constexpr operator const volatile unsigned long int() const volatile noexcept = 0;
};
</code></pre>
</blockquote>
<p>Das ist nach wie vor Quatsch, und die Tatsache, dass es nicht vom zitierten Paragraphen behandelt wird, ein Defekt.</p>
</blockquote>
<p>Natürlich ist es <em>Quatsch</em>.</p>
</blockquote>
<p>Edit²: Dein Code ist ill-formed, NDR:</p>
<p>[dcl.constexpr]/5 schrieb:</p>
<blockquote>
<p>For a <code>constexpr</code> function or <code>constexpr</code> constructor that is neither defaulted nor a template, if no argument values exist such that an invocation of the function or constructor could be an evaluated subexpression of a core constant expression (5.20), or, for a constructor, a constant initializer for some object (3.6.2), the program is ill-formed; no diagnostic required.</p>
</blockquote>
<p>Damit führe ich gerade mit 10.</p>
<blockquote>
<p>Ja und? Schließt sich das gegenseitig aus?</p>
</blockquote>
<p>Ja, anscheinend. Du musst sonst die folgende Notiz erklären:</p>
<blockquote>
<p>[ <em>Note</em>: Some white space is required to separate otherwise adjacent identifiers, <strong>keywords</strong>, numeric literals, and <strong>alternative tokens containing alphabetic characters</strong>. — <em>end note</em> ]</p>
</blockquote>
<p>Du musst auch erklären, was es mit der folgenden Diskrepanz auf sich hat:</p>
<blockquote>
<p>After all replacements due to macro expansion and evaluations of <em>defined-macro-expression</em>s and <em>has-include-expression</em>s have been performed, **all remaining identifiers and keywords<sup>147</sup>, except for <code>true</code> and <code>false</code> , are replaced with the <em>pp-number</em> <code>0</code> **, and then each preprocessing token is converted into a token.</p>
<ol start="147">
<li><strong>An alternative token (2.5) is not an identifier, even when its spelling consists entirely of letters and underscores. Therefore it is not subject to this replacement.</strong></li>
</ol>
</blockquote>
<p>... oder du hast dich einfach auf die umgangssprachliche Bedeutung von keyword bezogen, nämlich ein intrinsisch reservierter Bezeichner?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492127</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sat, 02 Apr 2016 17:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sat, 02 Apr 2016 15:48:31 GMT]]></title><description><![CDATA[<p>Und hier sind 10 unterschiedliche von mir:</p>
<pre><code>int main() {if (0); else do extern constexpr const volatile unsigned long int operator+(struct A); while (0);}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2492130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492130</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sat, 02 Apr 2016 15:48:31 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sat, 02 Apr 2016 19:24:58 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a>: Teste deinen Code mal. Eine <code>constexpr</code> Funktion darf nicht als <code>virtual</code> definiert werden ([dcl.constexpr]/(3.1)).</p>
</blockquote>
<p>ok, hab nur mit gcc getestet. Dann eben bloss eine Deklaration</p>
<pre><code class="language-cpp">struct baz
{
    explicit inline virtual constexpr operator const volatile unsigned long int() const volatile noexcept = 0;
};
</code></pre>
</blockquote>
<p>Das ist nach wie vor Quatsch, und die Tatsache, dass es nicht vom zitierten Paragraphen behandelt wird, ein Defekt.</p>
</blockquote>
<p>Natürlich ist es <em>Quatsch</em>.</p>
</blockquote>
<p>Edit²: Dein Code ist ill-formed, NDR:</p>
<p>[dcl.constexpr]/5 schrieb:</p>
<blockquote>
<p>For a <code>constexpr</code> function or <code>constexpr</code> constructor that is neither defaulted nor a template, if no argument values exist such that an invocation of the function or constructor could be an evaluated subexpression of a core constant expression (5.20), or, for a constructor, a constant initializer for some object (3.6.2), the program is ill-formed; no diagnostic required.</p>
</blockquote>
<p>Damit führe ich gerade mit 10.</p>
</blockquote>
<p>Die Anwendung dieser Regel ist ja wohl völlig daneben, da keine Funktionsdefinition existiert. Andernfalls wäre jedes Programm, dass constexpr-Funktionen bloss deklariert abder nicht definiert (und auch nicht verwendet) ill-formed.</p>
<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>Ja und? Schließt sich das gegenseitig aus?</p>
</blockquote>
<p>Ja, anscheinend. Du musst sonst die folgende Notiz erklären:</p>
<blockquote>
<p>[ <em>Note</em>: Some white space is required to separate otherwise adjacent identifiers, <strong>keywords</strong>, numeric literals, and <strong>alternative tokens containing alphabetic characters</strong>. — <em>end note</em> ]</p>
</blockquote>
</blockquote>
<p>Warum? Als Hüter des Standards weisst du am besten, dass solche Bemerkungen keinen normativen Charakter haben.</p>
<p>Arcoth schrieb:</p>
<blockquote>
<p>Du musst auch erklären, was es mit der folgenden Diskrepanz auf sich hat:</p>
<blockquote>
<p>After all replacements due to macro expansion and evaluations of <em>defined-macro-expression</em>s and <em>has-include-expression</em>s have been performed, **all remaining identifiers and keywords<sup>147</sup>, except for <code>true</code> and <code>false</code> , are replaced with the <em>pp-number</em> <code>0</code> **, and then each preprocessing token is converted into a token.</p>
<ol start="147">
<li><strong>An alternative token (2.5) is not an identifier, even when its spelling consists entirely of letters and underscores. Therefore it is not subject to this replacement.</strong></li>
</ol>
</blockquote>
</blockquote>
<p>Wo ist der Widerspruch? Widerum hat die Fußnote keine eigenständige Bedeutung, das ist nur Ausfluss dessen was wir schon wissen (2.5, die betreffenden Token fallen in die preprocessing-op-or-punc Kategorie, sind somit keine Identifier, können somit nicht Makronamen sein, und werden folglich an dieser Stelle auch nicht ersetzt - wie auch new und delete nicht). Wir vergessen mal dass es Implementationen in der Praxis damit oft nicht so genau nehmen.<br />
Nimmt man es genau, findet sich hier ein Widerspruch zwischen 2.5 und 2.7:<br />
Wenn <em>identifier</em> und <em>preprocessing-op-or-punc</em> disjunkte Kategorien sind, wie kann es dann sein, dass new und delete sowohl in Tabelle 4 (=identfier, die Keywords sind) als auch der Definition von <em>preprocessing-op-or-punc</em> auftauchen?<br />
2.5/1 ist auch problematisch:</p>
<blockquote>
<p>Each preprocessing token that is converted to a token (2.7) shall have the lexical form of a keyword, an identifier, a literal, an operator, or a punctuator.</p>
</blockquote>
<p>keyword ist in dieser Aufzählung ja wohl redundant: es gibt keine Keywords, die nicht die lexikalische Form von identifier haben.</p>
<p>Oder vielleicht hat der Standard auch keine einheitliche Definition von &quot;Keyword&quot;; in A.1 z.B. wird plötzlich von kontext-dependent keywords gesprochen.</p>
<p>Arcoth schrieb:</p>
<blockquote>
<p>... oder du hast dich einfach auf die umgangssprachliche Bedeutung von keyword bezogen, nämlich ein intrinsisch reservierter Bezeichner?</p>
</blockquote>
<p>Selbstverständlich. Das war in dem Kontext ja wohl auch nicht anders zu erwarten - nicht zuletzt eben deshalb, weil der Threadstarter klar spezifiziert hat, was <em>er</em> unter Keyword verstanden haben will. Deine Erbsenzählerei ist daher unangebracht und peinlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492143</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 02 Apr 2016 19:24:58 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sun, 03 Apr 2016 00:05:16 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Die Anwendung dieser Regel ist ja wohl völlig daneben, da keine Funktionsdefinition existiert. Andernfalls wäre jedes Programm, dass constexpr-Funktionen bloss deklariert abder nicht definiert (und auch nicht verwendet) ill-formed.</p>
</blockquote>
<p>Unsinn. Die Tatsache, dass die Funktion gar nicht erst definiert oder overriden werden <em>kann</em>, ist ausschlaggebend (und das ist auch offensichtlich das, worauf ich mich bezog, und nicht auf eine direkte Verletzung der ODR).</p>
<blockquote>
<p>Warum? Als Hüter des Standards weisst du am besten, dass solche Bemerkungen keinen normativen Charakter haben.</p>
</blockquote>
<p>Nein, aber sie drücken Intention aus (was du als Hüter des Standards am besten weisst). Die Autoren dieser Notiz waren höchstwahrscheinlich auch im Entwicklungsprozess von Klausel 2 involviert, was Aufschluss über die richtige Interpretation git. Dass alternative tokens containing alphabetic characters in solch expliziter Form erwähnt werden, macht wohl etwas deutlich.</p>
<blockquote>
<p>Wo ist der Widerspruch? ....</p>
</blockquote>
<p>Einen Widerspruch gab es nicht. Worauf ich mit dem Zitat hinaus wollte: Keywords werden aufgezählt; alternative tokens sind nicht inbegriffen. =&gt; Alternative tokens sind keine keywords, und der Unterschied kann beobachtet werden.</p>
<pre><code>#if void // Ok
#if and  // Nicht Ok (aus gutem Grund)
</code></pre>
<blockquote>
<p>Wenn identifier und preprocessing-op-or-punc disjunkte Kategorien sind</p>
</blockquote>
<p>&quot;Identifier&quot; wird merkwürdig vom Standard gehandhabt (ich habe erst neulich einen DR dazu abgeschickt). Offensichtlich sind einige der preprocessing-op-or-puncs lexikalische identifier (also wie in [<a href="http://lex.name" rel="nofollow">lex.name</a>] beschrieben), aber sie sind keine identifier Token.</p>
<blockquote>
<p>wie kann es dann sein, dass new und delete sowohl in Tabelle 4 (=identfier, die Keywords sind) als auch der Definition von preprocessing-op-or-punc auftauchen?</p>
</blockquote>
<p>Relevant ist DR 369.</p>
<p>Relevant für dieses Thema sind außerdem DR 985/2152, wo das Zusammenspiel von identifier und alternative token kracht. <code>&quot;&quot;or&quot;&quot;</code> ist nicht well-formed, obwohl <code>or</code>  <code>||</code> gleichen soll.</p>
<blockquote>
<p>Deine Erbsenzählerei ist daher unangebracht und peinlich.</p>
</blockquote>
<p>Interessiert mich wenig, wie du weisst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492153</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 03 Apr 2016 00:05:16 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sun, 03 Apr 2016 08:44:26 GMT]]></title><description><![CDATA[<p>Traurig das über solche Kindereien ausführlich diskutiert wird, aber andere Threads kaum antworten erhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492163</guid><dc:creator><![CDATA[shade#]]></dc:creator><pubDate>Sun, 03 Apr 2016 08:44:26 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sun, 03 Apr 2016 09:59:35 GMT]]></title><description><![CDATA[<p>Na dann antworte doch <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="😕"
    /><br />
Das hier ist doch kein Krankenhaus....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492168</guid><dc:creator><![CDATA[Techel]]></dc:creator><pubDate>Sun, 03 Apr 2016 09:59:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sun, 03 Apr 2016 18:52:18 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>Die Anwendung dieser Regel ist ja wohl völlig daneben, da keine Funktionsdefinition existiert. Andernfalls wäre jedes Programm, dass constexpr-Funktionen bloss deklariert abder nicht definiert (und auch nicht verwendet) ill-formed.</p>
</blockquote>
<p>Unsinn. Die Tatsache, dass die Funktion gar nicht erst definiert oder overriden werden <em>kann</em>, ist ausschlaggebend (und das ist auch offensichtlich das, worauf ich mich bezog, und nicht auf eine direkte Verletzung der ODR).</p>
</blockquote>
<p>Schon klar, dass du das meinst. Der Textsinn des Zitates gibt es nur nicht her. Sollte dazu eine entsprechende ausdrückliche Äußerung des Standardkommitees existieren, lasse ich mich gerne überzeugen.</p>
<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>Warum? Als Hüter des Standards weisst du am besten, dass solche Bemerkungen keinen normativen Charakter haben.</p>
</blockquote>
<p>Nein, aber sie drücken Intention aus (was du als Hüter des Standards am besten weisst).</p>
</blockquote>
<p>Ich weiss gar nichts. Ich kenne nur den Text.</p>
<p>Arcoth schrieb:</p>
<blockquote>
<p>Die Autoren dieser Notiz waren höchstwahrscheinlich auch im Entwicklungsprozess von Klausel 2 involviert, was Aufschluss über die richtige Interpretation git. Dass alternative tokens containing alphabetic characters in solch expliziter Form erwähnt werden, macht wohl etwas deutlich.</p>
</blockquote>
<p>Vielleicht. Vielleicht auch nicht. Vielleicht war sich der Author nur nicht völlig sicher. Vielleicht war der Bezug mal ein anderer. Fußnoten dieser Art fanden und finden sich im Standard einige. Jedenfalls hast du nicht verstanden, was was es heißt, dass Fußnoten, Beispiele, und Notizen <em>keinen normativen Charakter</em> haben: was auch immer sie aussagen, muss sich (soferen sie nicht einfach falsch sind), an anderer Stelle aus dem Text ableiten lassen. Diese Ableitung hast du nicht geliefert.<br />
Anders gesagt: Die Stelle sagt, dass eine Regel existiert und nicht, was die Regel ist. Die Detektivarbeit endet hier nicht, sie beginnt überhaupt erst.</p>
<p>Und hier ist noch einmal mein strukturelles Argument, dass du einfach ignorierst:<br />
Trotz der Tatsache, das ein eigener Abschnitt alternative representations shown in Table 5 for certain operators and punctuators existiert; werden die strittigen Token noch einmal in [lex.key] behandelt. Der Standard ist kein Roman; die Tatsache, <em>wo</em> sich eine bestimmte Norm befindet, hat ebenfalls Bedeutung. Wenn die alternativen Token so absolut überhaupt nichts mit Keywords zu tun haben, wieso sollte irgenjemand auf die Idee gekommen sein, das dort hinzuschreiben, wo doch schon ein Abschnitt für diese Token existiert?</p>
<p>Die Autoren dieses Anschittes haben sich höchstwahrscheinlich etwas bei Schreiben dieser Klausel gedacht, was Aufschluss über die richtige Interpretation git. Dass alternative representations for certain operators and punctuators in diesem Abschnitt auftauchen, macht wohl etwas deutlich.</p>
<p>Deine Argumentation wäre überzeugender, wenn du nicht nur Stellen heraussuchen würdest, die deine These (vermeintlich) stützen und den Rest unter den Tisch fallen lässt.</p>
<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>Wo ist der Widerspruch? ....</p>
</blockquote>
<p>Einen Widerspruch gab es nicht. Worauf ich mit dem Zitat hinaus wollte: Keywords werden aufgezählt; alternative tokens sind nicht inbegriffen. =&gt; Alternative tokens sind keine keywords, und der Unterschied kann beobachtet werden.</p>
</blockquote>
<p>Wäre überzeugender, wenn der Text nicht so inkonsistent wäre.<br />
Scheuen wir über den Tellerand, stellen wir fest, dass der Text für den Präprozessor von C90 übernommen wurde, ausser das in C (C90: 6.8.1; C99: 6.10.1) dort nur identifier steht.<br />
Weil es Mode ist, mutmaße ich jetzt mal:<br />
<em>Ursprünglich</em> existierten die strittigen alternative Token nicht, es existierten entsprechende Makros in &lt;iso646.h&gt;<br />
Irgendjemand hielt es dann für eine gute Idee, die alternativen Token als festen Bestandteil des Sprachkerns einzuführen. Natürlich sollte sich Präprozessorcode nicht plötzlich anders verhalten, also muss klargestellt werden, dass die Äquivalenz von alternativem Token und entsprechendem Primärtoken [lex.digrah]/2 Vorrang vor der Ersetzung von identifier durch 0 haben soll. Irgenwann später stellt man fest, dass identifier ja fast überall im Standard nur die Token meint, die lexikalisch wie identifier aussehen <em>und</em> keine Keywords sind. Da aber auch Keywords im allg. Gegenstand dieser Ersetzung sind, verschlimmbessert man den Normtext, indem &quot;remaining identifiers&quot; durch &quot;remaining identifiers and keywords&quot;, vergisst aber die Fußnote anzupassen.<br />
(C11 macht es noch falscher, dort steht:</p>
<blockquote>
<p>After all replacements due to macro expansion and the defined unary operator have been performed, all remaining identifiers (including those lexically identical to keywords) are replaced with the pp-number 0, and then each preprocessing token is converted into a token.</p>
</blockquote>
<p>wtf. jedenfalls ist klar, dass dieser Identifierbegriff nicht identisch mit dem im Rest des Standards ist)<br />
In wirklichkeit haben Keywords hier nichts verloren, die existieren vor Übersetzungsphase 7 ja nicht als solche.<br />
Dein Argument hängt also von der Konsistenz einer zu einem anderen Zeitpunkt enstandenen Bemerkung zu einem deplazierten Begriff an einer sehr weit vom Rest (Clause 2) entfernten Stelle ab.</p>
<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>Deine Erbsenzählerei ist daher unangebracht und peinlich.</p>
</blockquote>
<p>Interessiert mich wenig, wie du weisst.</p>
</blockquote>
<p>Jetzt schon (ich habe kein Gedächtnis für so etwas). Sehr bedauerlich. Da du offenkundig nicht in der Lage bist, vernünftig einzuschätzen, ob eine Berichtigung zweckmäßig und angemessen ist, bitte ich dich, zukünftig weder auf meine Beiträge zu antworten noch derartiges Threadhijacking zu betreiben.</p>
<p>shade# schrieb:</p>
<blockquote>
<p>Traurig das über solche Kindereien ausführlich diskutiert wird, aber andere Threads kaum antworten erhalten.</p>
</blockquote>
<p>Nur dann, wenn man meint, jene anderen Threads hätten schon an sich einen höheren Wert. Dem Kindereien-Teil stimme ich allerdings zu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492230</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 03 Apr 2016 18:52:18 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele Schlüsselwörter könnt ihr in aneinanderreihen on Sun, 03 Apr 2016 23:16:21 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>Die Anwendung dieser Regel ist ja wohl völlig daneben, da keine Funktionsdefinition existiert. Andernfalls wäre jedes Programm, dass constexpr-Funktionen bloss deklariert abder nicht definiert (und auch nicht verwendet) ill-formed.</p>
</blockquote>
<p>Unsinn. Die Tatsache, dass die Funktion gar nicht erst definiert oder overriden werden <em>kann</em>, ist ausschlaggebend (und das ist auch offensichtlich das, worauf ich mich bezog, und nicht auf eine direkte Verletzung der ODR).</p>
</blockquote>
<p>Schon klar, dass du das meinst. Der Textsinn des Zitates gibt es nur nicht her.</p>
</blockquote>
<p>Wenn wir akribisch normativen Text interpretieren möchten, ist es völlig eindeutig, dass auch undefinierte Funktionen inbegriffen sind, woran der Anfang des Satzes nichts ändert.</p>
<blockquote>
<p>Jedenfalls hast du nicht verstanden, was was es heißt, dass Fußnoten, Beispiele, und Notizen <em>keinen normativen Charakter</em> haben: was auch immer sie aussagen, muss sich (soferen sie nicht einfach falsch sind), an anderer Stelle aus dem Text ableiten lassen.</p>
</blockquote>
<p>Doch, habe ich.</p>
<blockquote>
<p>Trotz der Tatsache, das ein eigener Abschnitt alternative representations shown in Table 5 for certain operators and punctuators existiert; werden die strittigen Token noch einmal in [lex.key] behandelt. Der Standard ist kein Roman; die Tatsache, <em>wo</em> sich eine bestimmte Norm befindet, hat ebenfalls Bedeutung. Wenn die alternativen Token so absolut überhaupt nichts mit Keywords zu tun haben, wieso sollte irgenjemand auf die Idee gekommen sein, das dort hinzuschreiben, wo doch schon ein Abschnitt für diese Token existiert?</p>
</blockquote>
<p>Footnote 16 nennt sie &quot;lexical keywords&quot;. In früheren WPs waren in [lex.key] noch deutlich mehr, völlig deplatzierte Definitionen, die durch eine in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/1996/N0904.pdf" rel="nofollow">N0904</a> beschriebene, editorische Aufteilung entfernt wurden. Niemand hat sie dort platziert, als der Abschnitt nur die eine Tabelle enthielt.</p>
<blockquote>
<p>Irgendjemand hielt es dann für eine gute Idee, die alternativen Token als festen Bestandteil des Sprachkerns einzuführen. Natürlich sollte sich Präprozessorcode nicht plötzlich anders verhalten, also muss klargestellt werden, dass die Äquivalenz von alternativem Token und entsprechendem Primärtoken [lex.digrah]/2 Vorrang vor der Ersetzung von identifier durch 0 haben soll.</p>
</blockquote>
<p>Soweit annehmbar klingend.</p>
<blockquote>
<p>Irgenwann später stellt man fest, dass identifier ja fast überall im Standard nur die Token meint, die lexikalisch wie identifier aussehen <em>und</em> keine Keywords sind. Da aber auch Keywords im allg. Gegenstand dieser Ersetzung sind, verschlimmbessert man den Normtext, indem &quot;remaining identifiers&quot; durch &quot;remaining identifiers and keywords&quot;, vergisst aber die Fußnote anzupassen.</p>
</blockquote>
<p>Das ist falsch. Die Fußnote und die Addition von &quot;and keywords&quot; passierten gleichzeitig, und zwar im Übergang zum Oktober '97 WP.</p>
<p>Ich habe den Ursprung dieser Änderung lokalisiert (war gar nicht so einfach): Es ist <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1095.pdf" rel="nofollow">N1095</a>. In diesem Paper wurde auch der andere von mir zitierte Paragraph eingefügt: 485,493. Anscheinend handelt es sich um ein Kommentar von France; ich kann leider keine Erklärung dazu finden. Es ist IMO durch die vier in dem Paper gemachten Änderungen sehr suggestiv, dass alternative tokens in Konvertierungen zu tokens von preprocessing tokens als punctuators klassifiziert werden sollen - darum ja die Ergänzung von &quot;and keywords&quot; (weil wir von tokens sprechen).</p>
<blockquote>
<p>In wirklichkeit haben Keywords hier nichts verloren, die existieren vor Übersetzungsphase 7 ja nicht als solche.</p>
</blockquote>
<p>Im selben Satz wird erklärt, dass die preprocessor tokens in tokens verwandelt werden, welche keywords sein können. Ich mutmaßen jetzt mal: Die Konvertierung zu tokens sollte wohl vor der Ersetzung von keywords und identifiers durch 0 geschehen.</p>
<blockquote>
<p>Da du offenkundig nicht in der Lage bist, vernünftig einzuschätzen, ob eine Berichtigung zweckmäßig und angemessen ist, bitte ich dich, zukünftig weder auf meine Beiträge zu antworten</p>
</blockquote>
<p>Plonk mich, das kommt nämlich der Unsinnigkeit deiner Bitte gleich.</p>
<blockquote>
<p>noch derartiges Threadhijacking zu betreiben.</p>
</blockquote>
<p>Dieser Thread handelt sich um Codegolf. Hijacking ist hier ein Kavaliersdelikt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492241</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 03 Apr 2016 23:16:21 GMT</pubDate></item></channel></rss>