<?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[Frage zu Templates und std::ofstream]]></title><description><![CDATA[<p>Hallo liebe Community<br />
ich habe mir zum reporten von Errormeldungen folgenden Code geschrieben</p>
<pre><code class="language-cpp">template &lt;typename T&gt; void err(const T&amp; error) {
	static std::ofstream of(&quot;test.txt&quot;);
	of &lt;&lt; error &lt;&lt; std::endl;
}
</code></pre>
<p>Jedoch wird bei dem Code zwar auch ein Paramter vom Typ <code>int</code> angenommen, jedoch nicht ausgegeben, nur strings werden ausgegeben. Das heißt das bei so einem Aufruf</p>
<pre><code class="language-cpp">err(1);
err(&quot;test&quot;);
</code></pre>
<p>nur &quot;test&quot; in die Datei reingeschrieben wird, aber nicht 1. Woran liegt das? Mein Compiler ist MSVC10.</p>
<p>PS:<br />
Gibt es ein AddOn oder sowas in der Art, damit der MSVC10 Compiler auch Variadic Templates unterstützt, damit ich sowas hier verwirklichen kann?</p>
<pre><code class="language-cpp">template &lt;typename A1, typename... Args&gt; void err(A1 a1, Args... args) {
	static std::ofstream of(&quot;test.txt&quot;);
	of &lt;&lt; a1 &lt;&lt; std::endl;
	err(args...);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/290268/frage-zu-templates-und-std-ofstream</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 16:07:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/290268.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Jul 2011 15:14:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Templates und std::ofstream on Fri, 22 Jul 2011 15:14:36 GMT]]></title><description><![CDATA[<p>Hallo liebe Community<br />
ich habe mir zum reporten von Errormeldungen folgenden Code geschrieben</p>
<pre><code class="language-cpp">template &lt;typename T&gt; void err(const T&amp; error) {
	static std::ofstream of(&quot;test.txt&quot;);
	of &lt;&lt; error &lt;&lt; std::endl;
}
</code></pre>
<p>Jedoch wird bei dem Code zwar auch ein Paramter vom Typ <code>int</code> angenommen, jedoch nicht ausgegeben, nur strings werden ausgegeben. Das heißt das bei so einem Aufruf</p>
<pre><code class="language-cpp">err(1);
err(&quot;test&quot;);
</code></pre>
<p>nur &quot;test&quot; in die Datei reingeschrieben wird, aber nicht 1. Woran liegt das? Mein Compiler ist MSVC10.</p>
<p>PS:<br />
Gibt es ein AddOn oder sowas in der Art, damit der MSVC10 Compiler auch Variadic Templates unterstützt, damit ich sowas hier verwirklichen kann?</p>
<pre><code class="language-cpp">template &lt;typename A1, typename... Args&gt; void err(A1 a1, Args... args) {
	static std::ofstream of(&quot;test.txt&quot;);
	of &lt;&lt; a1 &lt;&lt; std::endl;
	err(args...);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2096584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096584</guid><dc:creator><![CDATA[Noaea]]></dc:creator><pubDate>Fri, 22 Jul 2011 15:14:36 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Templates und std::ofstream on Fri, 22 Jul 2011 15:18:10 GMT]]></title><description><![CDATA[<p>Kann der Compiler variadic macros?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096585</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 22 Jul 2011 15:18:10 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Templates und std::ofstream on Fri, 22 Jul 2011 15:49:46 GMT]]></title><description><![CDATA[<p>Noaea schrieb:</p>
<blockquote>
<p>Das heißt das bei so einem Aufruf</p>
<pre><code class="language-cpp">err(1);
err(&quot;test&quot;);
</code></pre>
<p>nur &quot;test&quot; in die Datei reingeschrieben wird, aber nicht 1. Woran liegt das?</p>
</blockquote>
<p>Wenn Du diese beiden Aufrufe machst, werden zwei verschiedene Funktionen erstellt, nämlich diese beiden:</p>
<pre><code class="language-cpp">void err(const int&amp; error) {
    static std::ofstream of(&quot;test.txt&quot;);
    of &lt;&lt; error &lt;&lt; std::endl;
}

void err(const string&amp; error) {
    static std::ofstream of(&quot;test.txt&quot;);
    of &lt;&lt; error &lt;&lt; std::endl;
}
</code></pre>
<p>und wenn Dein zweiter Aufruf kommt, wird die Datei, die der erste Aufruf erstellt hat, überschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096603</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Fri, 22 Jul 2011 15:49:46 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Templates und std::ofstream on Fri, 22 Jul 2011 15:51:05 GMT]]></title><description><![CDATA[<p>Jedes Template hat seinen eigenen statischen ofstream -&gt; du überschreibst die Daten einfach.<br />
Eine Lösung wäre einmaliges Öffnen (Löschen) am Anfang des Programms und den Streams in den Templates das Flag std::ios::app auf den Weg geben.</p>
<p>Oder eben ein global zugänglicher ofstream.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096605</guid><dc:creator><![CDATA[yahendrik]]></dc:creator><pubDate>Fri, 22 Jul 2011 15:51:05 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Templates und std::ofstream on Fri, 22 Jul 2011 20:38:53 GMT]]></title><description><![CDATA[<p>Noaea schrieb:</p>
<blockquote>
<p>PS:<br />
Gibt es ein AddOn oder sowas in der Art, damit der MSVC10 Compiler auch Variadic Templates unterstützt, damit ich sowas hier verwirklichen kann?</p>
</blockquote>
<p>Nein, das wird in der nächsten Version (ich glaube 2012) hinzugefügt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096691</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Fri, 22 Jul 2011 20:38:53 GMT</pubDate></item></channel></rss>