<?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[Zeichenketten ohne T()-Makro]]></title><description><![CDATA[<p>Hallo,</p>
<p>gibt es eine elegante Möglichkeit, Zeichenketten generisch als ANSI- oder UNICODE-Zeichenketten darzustellen?<br />
Im moment geht das ja mit nem Makro <code>T()</code></p>
<pre><code class="language-cpp">#ifdef UNICODE
#define T(x) L##x
#else
#define T(x) x
#endif
</code></pre>
<p>Ich finde solche Makros irgendwie unschön...<br />
Lässt sich das irgendwie besser lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/254271/zeichenketten-ohne-t-makro</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 01:02:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/254271.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Nov 2009 23:44:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeichenketten ohne T()-Makro on Fri, 13 Nov 2009 23:44:45 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>gibt es eine elegante Möglichkeit, Zeichenketten generisch als ANSI- oder UNICODE-Zeichenketten darzustellen?<br />
Im moment geht das ja mit nem Makro <code>T()</code></p>
<pre><code class="language-cpp">#ifdef UNICODE
#define T(x) L##x
#else
#define T(x) x
#endif
</code></pre>
<p>Ich finde solche Makros irgendwie unschön...<br />
Lässt sich das irgendwie besser lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807788</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 13 Nov 2009 23:44:45 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenketten ohne T()-Makro on Sat, 14 Nov 2009 01:25:48 GMT]]></title><description><![CDATA[<p>Die Datei als UTF8 speichern und kein Macro benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807796</guid><dc:creator><![CDATA[DrGreenthumb]]></dc:creator><pubDate>Sat, 14 Nov 2009 01:25:48 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenketten ohne T()-Makro on Sat, 14 Nov 2009 02:41:57 GMT]]></title><description><![CDATA[<p>Das Makro ist das bequemste/schönste oder wie schon gesagt strings aus Dateien laden.<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807804</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sat, 14 Nov 2009 02:41:57 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenketten ohne T()-Makro on Sat, 14 Nov 2009 13:57:54 GMT]]></title><description><![CDATA[<p>ich meinte nicht die strings aus Dateien &quot;laden&quot; sondern den Quelltext als UTF8 speichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807894</guid><dc:creator><![CDATA[DrGreenthumb]]></dc:creator><pubDate>Sat, 14 Nov 2009 13:57:54 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenketten ohne T()-Makro on Sat, 14 Nov 2009 13:59:54 GMT]]></title><description><![CDATA[<p>DrGreenthumb schrieb:</p>
<blockquote>
<p>ich meinte nicht die strings aus Dateien &quot;laden&quot; sondern den Quelltext als UTF8 speichern.</p>
</blockquote>
<p>UTF8-Codierter Quelltext ist IIRC nicht standardkompatibel. Der Standard erlaubt nur einen reltiv beschränkten Zeichensatz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807895</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sat, 14 Nov 2009 13:59:54 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenketten ohne T()-Makro on Sat, 14 Nov 2009 14:03:19 GMT]]></title><description><![CDATA[<p>daersc schrieb:</p>
<blockquote>
<p>Ich finde solche Makros irgendwie unschön...<br />
Lässt sich das irgendwie besser lösen?</p>
</blockquote>
<p>Wenn du diese Möglichkeit unschön findest, solltest du dir vielleicht überlegen, ob du wirklich so oft eine Unterscheidung brauchst und nicht direkt sagen kannst, ob <code>char</code> - oder <code>wchar_t</code> -Arrays benötigt werden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807896</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 14 Nov 2009 14:03:19 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenketten ohne T()-Makro on Sat, 14 Nov 2009 14:19:25 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>DrGreenthumb schrieb:</p>
<blockquote>
<p>ich meinte nicht die strings aus Dateien &quot;laden&quot; sondern den Quelltext als UTF8 speichern.</p>
</blockquote>
<p>UTF8-Codierter Quelltext ist IIRC nicht standardkompatibel. Der Standard erlaubt nur einen reltiv beschränkten Zeichensatz.</p>
</blockquote>
<p>Und was sollte das nützen? Ein String-Literal ist per Definition ein char-Array und kein wchar_t-Array. Das Einzige, das mir dazu einfällt, wäre eine Compiler-Option (&quot;-wchar-strings&quot; oder so), aber vermutlich würde so etwas mehr schaden als nützen....</p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807907</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Sat, 14 Nov 2009 14:19:25 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenketten ohne T()-Makro on Sat, 14 Nov 2009 14:23:56 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>daersc schrieb:</p>
<blockquote>
<p>Ich finde solche Makros irgendwie unschön...<br />
Lässt sich das irgendwie besser lösen?</p>
</blockquote>
<p>Wenn du diese Möglichkeit unschön findest, solltest du dir vielleicht überlegen, ob du wirklich so oft eine Unterscheidung brauchst und nicht direkt sagen kannst, ob <code>char</code> - oder <code>wchar_t</code> -Arrays benötigt werden...</p>
</blockquote>
<p>Naja - manchmal möchte man denselben Code halt als UNICODE- oder ANSI-Variante übersetzen können. Etwa, wenn man eine Library schreibt, die für beides verfügbar sein soll.</p>
<p>Ich finde übrigens dieses Makro überhaupt nicht unelegant. Man muss halt nur immer daran denken, es auch zu verwenden.</p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807911</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Sat, 14 Nov 2009 14:23:56 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenketten ohne T()-Makro on Sat, 14 Nov 2009 14:41:25 GMT]]></title><description><![CDATA[<p>DStefan schrieb:</p>
<blockquote>
<p>pumuckl schrieb:</p>
<blockquote>
<p>DrGreenthumb schrieb:</p>
<blockquote>
<p>ich meinte nicht die strings aus Dateien &quot;laden&quot; sondern den Quelltext als UTF8 speichern.</p>
</blockquote>
<p>UTF8-Codierter Quelltext ist IIRC nicht standardkompatibel. Der Standard erlaubt nur einen reltiv beschränkten Zeichensatz.</p>
</blockquote>
<p>Und was sollte das nützen? Ein String-Literal ist per Definition ein char-Array und kein wchar_t-Array.</p>
</blockquote>
<p>Ich meinte mit UTF8 auch, dass man dann natürlich kein wchar mehr benutzt.</p>
<p>DStefan schrieb:</p>
<blockquote>
<p>Ich finde übrigens dieses Makro überhaupt nicht unelegant. Man muss halt nur immer daran denken, es auch zu verwenden.</p>
</blockquote>
<p>&quot;man muss immer dran denken&quot; schreit doch nach Bugs. Das passt ganz gut in meine Definition von unelegant.</p>
<p>Ich denke mit wchar gehts auch nicht besser. Ich sehe aber auch nicht wozu man das benötigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807923</guid><dc:creator><![CDATA[DrGreenthumb]]></dc:creator><pubDate>Sat, 14 Nov 2009 14:41:25 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenketten ohne T()-Makro on Sat, 14 Nov 2009 14:49:15 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>DrGreenthumb schrieb:</p>
<blockquote>
<p>ich meinte nicht die strings aus Dateien &quot;laden&quot; sondern den Quelltext als UTF8 speichern.</p>
</blockquote>
<p>UTF8-Codierter Quelltext ist IIRC nicht standardkompatibel. Der Standard erlaubt nur einen reltiv beschränkten Zeichensatz.</p>
</blockquote>
<p>Man muss sich eh an den Zeichensatz des Compilers halten. UTF8 war nur ein Beispiel.</p>
<p>Darum zusammengefasst nochmal als Lösung für die Macros:<br />
Kein wchar_t nehmen und sich einfach im Klaren sein, mit welchem Format die Source-Datei gespeichert wurde. IMHO das praktischste.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807932</guid><dc:creator><![CDATA[DrGreenthumb]]></dc:creator><pubDate>Sat, 14 Nov 2009 14:49:15 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenketten ohne T()-Makro on Sat, 14 Nov 2009 14:54:24 GMT]]></title><description><![CDATA[<p>DrGreenthumb schrieb:</p>
<blockquote>
<p>DStefan schrieb:</p>
<blockquote>
<p>pumuckl schrieb:</p>
<blockquote>
<p>DrGreenthumb schrieb:</p>
<blockquote>
<p>ich meinte nicht die strings aus Dateien &quot;laden&quot; sondern den Quelltext als UTF8 speichern.</p>
</blockquote>
<p>UTF8-Codierter Quelltext ist IIRC nicht standardkompatibel. Der Standard erlaubt nur einen reltiv beschränkten Zeichensatz.</p>
</blockquote>
<p>Und was sollte das nützen? Ein String-Literal ist per Definition ein char-Array und kein wchar_t-Array.</p>
</blockquote>
<p>Ich meinte mit UTF8 auch, dass man dann natürlich kein wchar mehr benutzt.</p>
<p>DStefan schrieb:</p>
<blockquote>
<p>Ich finde übrigens dieses Makro überhaupt nicht unelegant. Man muss halt nur immer daran denken, es auch zu verwenden.</p>
</blockquote>
<p>&quot;man muss immer dran denken&quot; schreit doch nach Bugs. Das passt ganz gut in meine Definition von unelegant.</p>
<p>Ich denke mit wchar gehts auch nicht besser. Ich sehe aber auch nicht wozu man das benötigt.</p>
</blockquote>
<p>Naja - idR wird's doch wohl ein &quot;Bug&quot; sein, der schon den Compiler nervt, sobald man mit &quot;-DUNICODE&quot; übersetzt. Also wird man wohl früh genug darauf aufmerksam.</p>
<p>Meinst du, wozu man Unicode benötigt? Vielleicht für internationalisierbare Programme? Und wenn man bedenkt, dass z.B. Windows intern ausschließlich mit Unicode-Strings arbeitet, könnte man auf die Idee kommen, dass Unicode einfach der Stand der Technik ist.</p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807936</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Sat, 14 Nov 2009 14:54:24 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenketten ohne T()-Makro on Sat, 14 Nov 2009 15:05:42 GMT]]></title><description><![CDATA[<p>DStefan schrieb:</p>
<blockquote>
<p>Meinst du, wozu man Unicode benötigt?</p>
</blockquote>
<p>Nein, sondern wozu man wchar_t benötigt (ausser für manche APIs die's halt benutzen).</p>
<p>wchar_t ist nur eine Format für Unicode. Man kann Unicode aber auch in normalen chars speichern. Davon spreche ich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807944</guid><dc:creator><![CDATA[DrGreenthumb]]></dc:creator><pubDate>Sat, 14 Nov 2009 15:05:42 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenketten ohne T()-Makro on Sat, 14 Nov 2009 15:51:30 GMT]]></title><description><![CDATA[<p>DrGreenthumb schrieb:</p>
<blockquote>
<p>DStefan schrieb:</p>
<blockquote>
<p>Meinst du, wozu man Unicode benötigt?</p>
</blockquote>
<p>Nein, sondern wozu man wchar_t benötigt (ausser für manche APIs die's halt benutzen).</p>
<p>wchar_t ist nur eine Format für Unicode. Man kann Unicode aber auch in normalen chars speichern. Davon spreche ich.</p>
</blockquote>
<p>UTF-8 kannst auch in chars speichern ja. Bei UTF-16 belegt dann halt ein zeichen 2 Chars, da ist wchar_t angenehmer.<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807966</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sat, 14 Nov 2009 15:51:30 GMT</pubDate></item></channel></rss>