<?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[Stream kopieren]]></title><description><![CDATA[<p>Hi, kann ich irgendwie einen Stream kopieren? (KEINE Referenz)<br />
Wie macht man sonst sowas in der Form:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iostream&gt;
//...

Logger l;

void init() {
   l.fuegeGeraetHinzu(std::ofstream(&quot;mylog.txt&quot;));
}

int main(int, char**) {
  init();
  c&lt;&lt;&quot;Test&quot;; //Segfault. 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/296528/stream-kopieren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 22:35:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/296528.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Dec 2011 14:23:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Stream kopieren on Tue, 06 Dec 2011 14:23:44 GMT]]></title><description><![CDATA[<p>Hi, kann ich irgendwie einen Stream kopieren? (KEINE Referenz)<br />
Wie macht man sonst sowas in der Form:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iostream&gt;
//...

Logger l;

void init() {
   l.fuegeGeraetHinzu(std::ofstream(&quot;mylog.txt&quot;));
}

int main(int, char**) {
  init();
  c&lt;&lt;&quot;Test&quot;; //Segfault. 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2153882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153882</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Tue, 06 Dec 2011 14:23:44 GMT</pubDate></item><item><title><![CDATA[Reply to Stream kopieren on Tue, 06 Dec 2011 14:48:13 GMT]]></title><description><![CDATA[<p>Am besten gar nicht, der Aufrufer soll sich um das Objekt kümmern.<br />
Und wie willst du mit deinem Kopieransatz zum Beispiel <code>cout</code> als &quot;Gerät&quot; hinzufügen können?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153891</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Tue, 06 Dec 2011 14:48:13 GMT</pubDate></item><item><title><![CDATA[Reply to Stream kopieren on Tue, 06 Dec 2011 14:49:03 GMT]]></title><description><![CDATA[<p>Ja das war ja meine Frage, ob das denn geht. Also geht das nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153892</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Tue, 06 Dec 2011 14:49:03 GMT</pubDate></item><item><title><![CDATA[Reply to Stream kopieren on Tue, 06 Dec 2011 16:07:45 GMT]]></title><description><![CDATA[<p>Man könnte das vermutlich Gewünschte so erreichen:</p>
<pre><code class="language-cpp">//es wird kein ostream gespeichert, sondern eine Funktion, die einen bei Bedarf liefert
void fuegeGeraetHinzu(std::function&lt;std::ostream &amp;()&gt;);

static std::ostream &amp;returnArgument(std::ostream &amp;os)
{
	return os;
}

static std::ostream &amp;dereference(std::shared_ptr&lt;std::ostream&gt; os)
{
	return *os;
}

int main()
{
	fuegeGeraetHinzu(std::bind(returnArgument, std::ref(std::cout)));
	fuegeGeraetHinzu(std::bind(dereference, std::make_shared&lt;std::ofstream&gt;(&quot;name&quot;)));
}
</code></pre>
<p>Geht auch mit <code>bind</code> , <code>shared_ptr</code> , <code>make_shared</code> und <code>ref</code> aus <code>boost</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153905</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Tue, 06 Dec 2011 16:07:45 GMT</pubDate></item></channel></rss>