<?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[narrow und wide strings generierung mit templates]]></title><description><![CDATA[<p>hallo leute</p>
<p>gibt es eine moeglichkeit mit templates narrow und wide strings zu erstellen, wobei strings jetzt nicht unbedingt im sinne von basic_string gemeint ist.</p>
<p>folgendes beispiel;</p>
<pre><code>auto operator&lt;&lt;(std::ostream, const my_class &amp;v) -&gt; std::ostream&amp;
{
   out &lt;&lt; &quot;value=&quot; &lt;&lt; v.write_to_stream(out);
   return out;
}

auto operator&lt;&lt;(std::wostream, const my_class &amp;v) -&gt; std::wostream&amp;
{
   out &lt;&lt; L&quot;value=&quot; &lt;&lt; v.write_to_stream(out);
   return out;
}
</code></pre>
<p>wenn ich jetzt da was aendern will, muss ich naetuerlich beide operator versionen aendern.</p>
<p>was ich gerne haette waere ungefaehr sowas:</p>
<pre><code>template&lt;class T&gt;
auto operator&lt;&lt;(std::basic_ostream&lt;T&gt; &amp;out, const my_class &amp;v) -&gt; std::basic_ostream&lt;T&gt;&amp;
{
   out &lt;&lt; special_func&lt;T&gt;(&quot;value=&quot;) &lt;&lt; v.write_to_stream(out);

   return out;
}
</code></pre>
<p>es soll dabei zur laufzeit nicht bei jedem aufruf des operators von narrow-&gt;wide convertiert werden oder umgekehrt.<br />
wie ich das mit dem preprozessor hinbekomme, weiß ich. aber ich will den nur in notfaellen, wenn es nicht anders geht, verwenden.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/337725/narrow-und-wide-strings-generierung-mit-templates</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 23:25:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337725.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 24 Apr 2016 06:10:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to narrow und wide strings generierung mit templates on Sun, 24 Apr 2016 06:10:23 GMT]]></title><description><![CDATA[<p>hallo leute</p>
<p>gibt es eine moeglichkeit mit templates narrow und wide strings zu erstellen, wobei strings jetzt nicht unbedingt im sinne von basic_string gemeint ist.</p>
<p>folgendes beispiel;</p>
<pre><code>auto operator&lt;&lt;(std::ostream, const my_class &amp;v) -&gt; std::ostream&amp;
{
   out &lt;&lt; &quot;value=&quot; &lt;&lt; v.write_to_stream(out);
   return out;
}

auto operator&lt;&lt;(std::wostream, const my_class &amp;v) -&gt; std::wostream&amp;
{
   out &lt;&lt; L&quot;value=&quot; &lt;&lt; v.write_to_stream(out);
   return out;
}
</code></pre>
<p>wenn ich jetzt da was aendern will, muss ich naetuerlich beide operator versionen aendern.</p>
<p>was ich gerne haette waere ungefaehr sowas:</p>
<pre><code>template&lt;class T&gt;
auto operator&lt;&lt;(std::basic_ostream&lt;T&gt; &amp;out, const my_class &amp;v) -&gt; std::basic_ostream&lt;T&gt;&amp;
{
   out &lt;&lt; special_func&lt;T&gt;(&quot;value=&quot;) &lt;&lt; v.write_to_stream(out);

   return out;
}
</code></pre>
<p>es soll dabei zur laufzeit nicht bei jedem aufruf des operators von narrow-&gt;wide convertiert werden oder umgekehrt.<br />
wie ich das mit dem preprozessor hinbekomme, weiß ich. aber ich will den nur in notfaellen, wenn es nicht anders geht, verwenden.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493904</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Sun, 24 Apr 2016 06:10:23 GMT</pubDate></item></channel></rss>