<?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[&amp;quot;sinnlose&amp;quot; defines?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich frag mich schon seit längerem was manche defines aus (z.B.) der Standard Library eigentlich bringen sollen.</p>
<p>Zum Beispiel bei <code>std::string::npos</code> : Wenn ich mir davon die Definition anschaue, steht da</p>
<pre><code>_PGLOBAL static const size_type npos;	// generic bad/missing length/position
</code></pre>
<p>Bis auf das _PGLOBAL relativ einleuchtend. Wenn ich mir jetzt aber die Definition von _PGLOBAL anschaue, steht da:</p>
<pre><code>#define _PGLOBAL
</code></pre>
<p>Was bringt so ein &quot;leeres&quot; define in dem Fall? Ich nehme mal an das wird einfach ignoriert oder hat das noch einen weiteren Sinn?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/332487/quot-sinnlose-quot-defines</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 20:41:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/332487.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 May 2015 07:24:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 07:25:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich frag mich schon seit längerem was manche defines aus (z.B.) der Standard Library eigentlich bringen sollen.</p>
<p>Zum Beispiel bei <code>std::string::npos</code> : Wenn ich mir davon die Definition anschaue, steht da</p>
<pre><code>_PGLOBAL static const size_type npos;	// generic bad/missing length/position
</code></pre>
<p>Bis auf das _PGLOBAL relativ einleuchtend. Wenn ich mir jetzt aber die Definition von _PGLOBAL anschaue, steht da:</p>
<pre><code>#define _PGLOBAL
</code></pre>
<p>Was bringt so ein &quot;leeres&quot; define in dem Fall? Ich nehme mal an das wird einfach ignoriert oder hat das noch einen weiteren Sinn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452415</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Mon, 04 May 2015 07:25:18 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 07:29:24 GMT]]></title><description><![CDATA[<p>So kann man bei Bedarf den Code anpassen und braucht dafür bloß an einer Stelle eine Änderung vornehmen. Bei deiner Version der Implementierung ist anscheinend die gezeigte Variante, bei der an der Stelle einfach gar nichts steht, passend.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452416</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 04 May 2015 07:29:24 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 11:07:11 GMT]]></title><description><![CDATA[<p>z.T. werden leere Makros auch als Annotationen für static code analysis Tools verwendet.<br />
Ein Beispiel aus dem Windows SDK:</p>
<pre><code class="language-cpp">WINBASEAPI
DWORD
WINAPI
GetFullPathNameW(
    __in            LPCWSTR lpFileName,
    __in            DWORD nBufferLength,
    __out_ecount_part_opt(nBufferLength, return + 1) LPWSTR lpBuffer,
    __deref_opt_out LPWSTR *lpFilePart
    );
</code></pre>
<p><code>WINBASEAPI: __declspec(dllimport)</code><br />
<code>WINAPI: __stdcall</code><br />
<code>__in, __out_ecount_part_opt()</code> und <code>__deref_opt_out:</code> Annotationen für MS' static code analysis Tools.</p>
<p>Wobei das Beispiel nicht perfekt ist, denn wenn man mit MSVC compiliert, dann sind diese Makros gar nicht leer. Sie könnten aber genau so gut leer sein <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/2452437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452437</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 04 May 2015 11:07:11 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 11:34:23 GMT]]></title><description><![CDATA[<p>Ok, danke für die Aufklärung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Manchmal kommts mir halt nur echt so vor als würden die std (oder auch die WinApi) Entwickler einfach absichtlich häßlichen Code schreiben den keiner entziffern kann...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452439</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Mon, 04 May 2015 11:34:23 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 11:52:53 GMT]]></title><description><![CDATA[<p>happystudent schrieb:</p>
<blockquote>
<p>Manchmal kommts mir halt nur echt so vor als würden die std (oder auch die WinApi) Entwickler einfach absichtlich häßlichen Code schreiben den keiner entziffern kann...</p>
</blockquote>
<p>Ganz im Gegenteil, die bemühen sich den Code lesbar zu halten. Schließlich müssen sie ihn doch warten. Alles was Lesbarkeit vermindert ist nötig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452441</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Mon, 04 May 2015 11:52:53 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 11:59:27 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>happystudent schrieb:</p>
<blockquote>
<p>Manchmal kommts mir halt nur echt so vor als würden die std (oder auch die WinApi) Entwickler einfach absichtlich häßlichen Code schreiben den keiner entziffern kann...</p>
</blockquote>
<p>Ganz im Gegenteil, die bemühen sich den Code lesbar zu halten. Schließlich müssen sie ihn doch warten. Alles was Lesbarkeit vermindert ist nötig.</p>
</blockquote>
<p>ich erinnere mich in einen Talk von Microsoft STL Entwickler, der sich STL nennt (Steven..), gehört zu haben das eine gewisse Hässlichkeit bei der Implementierung gewollt angewendet wird, um zb nicht mit Namen zu kollidieren und ähnliches.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452442</guid><dc:creator><![CDATA[kurze_frage]]></dc:creator><pubDate>Mon, 04 May 2015 11:59:27 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 12:01:43 GMT]]></title><description><![CDATA[<blockquote>
<p>eine gewisse Hässlichkeit bei der Implementierung gewollt angewendet wird, um zb nicht mit Namen zu kollidieren und ähnliches.</p>
</blockquote>
<p>Natürlich. Es werden <code>_Solche __identifier</code> verwendet, die für alle Zwecke der Implementierung reserviert sind. Das ist nötig, wie du bereits erwähnt hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452443</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Mon, 04 May 2015 12:01:43 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 13:00:19 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>happystudent schrieb:</p>
<blockquote>
<p>Manchmal kommts mir halt nur echt so vor als würden die std (oder auch die WinApi) Entwickler einfach absichtlich häßlichen Code schreiben den keiner entziffern kann...</p>
</blockquote>
<p>Ganz im Gegenteil, die bemühen sich den Code lesbar zu halten. Schließlich müssen sie ihn doch warten. Alles was Lesbarkeit vermindert ist nötig.</p>
</blockquote>
<p>Das stimmt nur so halb. Zumindest bei Visual Studio sieht der Code so aus, als hätte man absichtlich das Lesen erschweren wollen. Da war vermutlich nicht das Ziel, ist aber trotzdem das Ergebnis. Die geschweiften Klammern fehlen, wo es syntaktisch erlaubt ist und sind ansonsten falsch eingerückt, was das Nachvollziehen von Blöcken sehr schwer macht. Redundante Kommentare lenken vom Code ab. Es fehlen Klammern, wo man überlicherweise welche zur Verdeutlichung setzt (Zeile 8), aber an anderen Stellen wurden unnötige Klammern hinzugefügt (Zeilen 28 und 31).</p>
<p>Aus VS 2012 <code>&lt;istream&gt;</code> :</p>
<pre><code class="language-cpp">bool __CLR_OR_THIS_CALL _Ipfx(bool _Noskip = false)
		{	// test stream state and skip whitespace as needed
		if (this-&gt;good())
			{	// state okay, flush tied stream and skip whitespace
			if (_Myios::tie() != 0)
				_Myios::tie()-&gt;flush();

			if (!_Noskip &amp;&amp; this-&gt;flags() &amp; ios_base::skipws)
				{	// skip whitespace
				const _Ctype&amp; _Ctype_fac = _USE(this-&gt;getloc(), _Ctype);

				_TRY_IO_BEGIN
				int_type _Meta = _Myios::rdbuf()-&gt;sgetc();

				for (; ; _Meta = _Myios::rdbuf()-&gt;snextc())
					if (_Traits::eq_int_type(_Traits::eof(), _Meta))
						{	// end of file, quit
						_Myios::setstate(ios_base::eofbit);
						break;
						}
					else if (!_Ctype_fac.is(_Ctype::space,
						_Traits::to_char_type(_Meta)))
						break;	// not whitespace, quit
				_CATCH_IO_END
				}

			if (this-&gt;good())
				return (true);
			}
		_Myios::setstate(ios_base::failbit);
		return (false);
		}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2452449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452449</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Mon, 04 May 2015 13:00:19 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 13:22:06 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>Ganz im Gegenteil, die bemühen sich den Code lesbar zu halten. Schließlich müssen sie ihn doch warten. Alles was Lesbarkeit vermindert ist nötig.</p>
</blockquote>
<p>Echt? Findest du sowas hier lesbar? Also ich find das zum kotzen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Vor allem macht sowas wie <code>#define TRY try</code> auch überhaupt keinen Sinn, warum verwendet man nicht einfach die Schlüsselwörter dies schon gibt? So &quot;verschmutzt&quot; man alles nur völlig unnötig mit Macros für 0 Mehrwert...</p>
<p>EDIT:<br />
Lol, TyRoXx ist mir da mit einem Beispiel zuvorgekommen^^</p>
<pre><code>void __CLR_OR_THIS_CALL _Copy(size_type _Newsize, size_type _Oldlen)
		{	// copy _Oldlen elements to newly allocated buffer
		size_type _Newres = _Newsize | _ALLOC_MASK;
		if (max_size() &lt; _Newres)
			_Newres = _Newsize;	// undo roundup if too big
		else if (_Newres / 3 &lt; _Myres / 2
			&amp;&amp; _Myres &lt;= max_size() - _Myres / 2)
			_Newres = _Myres + _Myres / 2;	// grow exponentially if possible
		_Elem *_Ptr = 0;

		_TRY_BEGIN
			_Ptr = _Mybase::_Alval.allocate(_Newres + 1);
		_CATCH_ALL
			_Newres = _Newsize;	// allocation failed, undo roundup and retry
			_TRY_BEGIN
				_Ptr = _Mybase::_Alval.allocate(_Newres + 1);
			_CATCH_ALL
			_Tidy(true);	// failed again, discard storage and reraise
			_RERAISE;
			_CATCH_END
		_CATCH_END

		if (0 &lt; _Oldlen)
			_Traits_helper::copy_s&lt;_Traits&gt;(_Ptr, _Newres + 1, _Myptr(), _Oldlen);	// copy existing elements
		_Tidy(true);
		_Bx._Ptr = _Ptr;
		_Myres = _Newres;
		_Eos(_Oldlen);
		}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2452450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452450</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Mon, 04 May 2015 13:22:06 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 16:47:42 GMT]]></title><description><![CDATA[<p>happystudent schrieb:</p>
<blockquote>
<p>Echt? Findest du sowas hier lesbar? Also ich find das zum kotzen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Ich finde das auch nicht schön, ist aber auch Gewohnheitssache.<br />
Die kurzen Bezeichner sind z.B. ziemlich sicher absicht, einfach um Platz und dadurch auch automatisch Compilezeit zu sparen.<br />
Evtl. ist das (Compilezeit sparen) auch der Grund für &quot;fehlende&quot; {} wo es auch ohne {} erlaubt ist.</p>
<p>happystudent schrieb:</p>
<blockquote>
<p>Vor allem macht sowas wie <code>#define TRY try</code> auch überhaupt keinen Sinn, warum verwendet man nicht einfach die Schlüsselwörter dies schon gibt? So &quot;verschmutzt&quot; man alles nur völlig unnötig mit Macros für 0 Mehrwert...</p>
</blockquote>
<p>Wieso bist du dir so sicher dass die Makros für try/catch überhaupt keinen Sinn haben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452471</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 04 May 2015 16:47:42 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 17:12:59 GMT]]></title><description><![CDATA[<p>Naja. Bei #define INT int habe ich auch keine Ahnung was das soll. Ein Sinn sehe ich da nicht direkt. Da frage ich mich warum man da sich nicht auf den Standard beruft oder einen Typ definiert wie</p>
<pre><code>#ifdef GCC32
  #define INT int
#elif GCC64
  #define INT short
#elif CLANG
  #define INT long
// ...
#endif
</code></pre>
<p>Ich kenn auch den Trick mit defines Code zu portieren. Unter Compiler XYZ existiert HUGE Pointer. Um es für GCC zu nutzen definiert man #define HUGE.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452474</guid><dc:creator><![CDATA[Bitte ein Bit]]></dc:creator><pubDate>Mon, 04 May 2015 17:12:59 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 18:21:40 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Wieso bist du dir so sicher dass die Makros für try/catch überhaupt keinen Sinn haben?</p>
</blockquote>
<p>Naja... also ich sehe zumindest auch nach längerem Überlegen keinen Sinn darin.</p>
<p>Das <code>_TRY_BEGIN</code> ist einfach nur <code>try{</code> , das <code>_CATCH_END</code> ist <code>}</code> - das ist potentiell ja noch eine Einladung für Klammerfehler und was das gegenüber einem normalen try-catch bringen soll weiß ich nicht.</p>
<p>Außerdem erhöht es ja auch noch die Compile- bzw. die Präprozessier-Zeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452479</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Mon, 04 May 2015 18:21:40 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 18:47:32 GMT]]></title><description><![CDATA[<p>happystudent schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Wieso bist du dir so sicher dass die Makros für try/catch überhaupt keinen Sinn haben?</p>
</blockquote>
<p>Naja... also ich sehe zumindest auch nach längerem Überlegen keinen Sinn darin.</p>
<p>Das <code>_TRY_BEGIN</code> ist einfach nur <code>try{</code> , das <code>_CATCH_END</code> ist <code>}</code> - das ist potentiell ja noch eine Einladung für Klammerfehler und was das gegenüber einem normalen try-catch bringen soll weiß ich nicht.</p>
<p>Außerdem erhöht es ja auch noch die Compile- bzw. die Präprozessier-Zeit.</p>
</blockquote>
<p>Es ist eventuell möglich, dass man den Code auch vollständig ohne Exception Handling kompilieren kann, er aber dennoch bei aktivierten Exceptions diese sinnvoll behandelt. Ich wäre vorsichtig damit, so etwas pauschal als sinnlos abzutun.</p>
<p>Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452485</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Mon, 04 May 2015 18:47:32 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 18:58:49 GMT]]></title><description><![CDATA[<p>Finnegan schrieb:</p>
<blockquote>
<p>happystudent schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Wieso bist du dir so sicher dass die Makros für try/catch überhaupt keinen Sinn haben?</p>
</blockquote>
<p>Naja... also ich sehe zumindest auch nach längerem Überlegen keinen Sinn darin.</p>
<p>Das <code>_TRY_BEGIN</code> ist einfach nur <code>try{</code> , das <code>_CATCH_END</code> ist <code>}</code> - das ist potentiell ja noch eine Einladung für Klammerfehler und was das gegenüber einem normalen try-catch bringen soll weiß ich nicht.</p>
<p>Außerdem erhöht es ja auch noch die Compile- bzw. die Präprozessier-Zeit.</p>
</blockquote>
<p>Es ist eventuell möglich, dass man den Code auch vollständig ohne Exception Handling kompilieren kann, er aber dennoch bei aktivierten Exceptions diese sinnvoll behandelt. Ich wäre vorsichtig damit, so etwas pauschal als sinnlos abzutun.</p>
</blockquote>
<p>Das.<br />
Nur weil du jetzt keine sinnvolle Ersetzung für die Makros nicht, heißt das nicht, dass da nicht eventuell eine hinkommt.<br />
Das ist ja gerade der Sinn von solchen Abstraktionen, man kann später andere Dinge ersetzen.<br />
In diesem Fall Exceptionhandling ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452486</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 04 May 2015 18:58:49 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 22:06:56 GMT]]></title><description><![CDATA[<p>Oder noch eine Idee: vielleicht könnte man die Dinger für Unit-Tests oder Coverage-Tests verwenden.<br />
Frag mich jetzt nicht wie genau das aussehen könnte, aber es geht eben darum was Nathan schon geschrieben hat: Nur weil kein offensichtlicher Nutzen erkennbar ist, kann man nicht automatisch annehmen dass etwas total sinnlos ist.</p>
<p>ps: Des Rätsels Lösung:</p>
<pre><code class="language-cpp">// xstddef (MSVC 2013)
// ...
 #else /* _HAS_EXCEPTIONS */
 #define _TRY_BEGIN	{{
 #define _CATCH(x)	} if (0) {
 #define _CATCH_ALL	} if (0) {
 #define _CATCH_END	}}
 #if defined(_DEBUG)
  #define _RAISE(x)	\
	_invoke_watson(__STR2WSTR(#x), __FUNCTIONW__, __FILEW__, __LINE__, 0)

 #else /* defined(_DEBUG) */
  #define _RAISE(x)	\
	_invoke_watson(0, 0, 0, 0, 0)
 #endif /* defined(_DEBUG) */
// ...
</code></pre>
<p>Also genau das was Finnegan geschrieben hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452506</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 04 May 2015 22:06:56 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 22:32:57 GMT]]></title><description><![CDATA[<p>Hm Ok, bei genauer Betrachtung macht es doch irgendwo Sinn...</p>
<p>Hab zwar manchmal das Gefühl das machen die absichtlich, aber gut zu sehen wenn man sich da täuscht <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/2452511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452511</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Mon, 04 May 2015 22:32:57 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 22:33:58 GMT]]></title><description><![CDATA[<p>happystudent schrieb:</p>
<blockquote>
<p>Hab zwar manchmal das Gefühl das machen die absichtlich, aber gut zu sehen wenn man sich da täuscht <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>Natürlich ist das Absicht, aber eine andere Absicht, als du denkst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452512</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 04 May 2015 22:33:58 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;sinnlose&amp;quot; defines? on Mon, 04 May 2015 22:52:24 GMT]]></title><description><![CDATA[<p>.. nicht zu vergessen dass einige Makros existieren damit man greppen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452513</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Mon, 04 May 2015 22:52:24 GMT</pubDate></item></channel></rss>