<?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[NLTemplate: C2280 - Verweis auf gelöschte Funktion]]></title><description><![CDATA[<p>Mrgn,</p>
<p>ich versuche gerade einen Seitengenerator in C++ (Compiler = cl.exe aus VS2015) zu schreiben; einfach aus Spaß. (Wenn er fertig ist, mache ich hier natürlich einen großen Ankündigungsbeitrag, damit ihr meinen grauenhaften Code genüßlich zerreißen könnt. ;)) Als Templatesystem nutze ich <a href="https://github.com/catnapgames/NLTemplate" rel="nofollow">NLTemplate</a>. Das geht an sich auch ganz gut, der Democode dort auf der Seite arbeitet wie gewünscht. Jetzt würde ich aber gern die Parserlogik in eine eigene Methode auslagern, damit ich nicht für jede einzelne Ausgabeseite den gleichen Code immer wieder schreiben muss.</p>
<p>Allerdings geht das nicht so, wie ich das gern hätte:</p>
<blockquote>
<p>src\main.cpp(155): error C2280: &quot;std::basic_stringstream&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;::basic_stringstream(const std::basic_stringstream&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt; &amp;)&quot; : Es wurde versucht, auf eine gelöschte Funktion zu verweisen<br />
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\sstream(631): note: Siehe Deklaration von &quot;std::basic_stringstream&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;::basic_stringstream&quot;</p>
</blockquote>
<p>In Zeile 155 steht der Aufruf meiner Renderfunktion:</p>
<pre><code>LoaderFile loader;
Template t(loader);

stringstream ret, ss_indir, ss_outdir, ss_tpl_index;
ss_indir &lt;&lt; &quot;indir/&quot;;
ss_outdir &lt;&lt; &quot;outdir/&quot;;
ss_tpl_index &lt;&lt; &quot;templates/default/index.txt&quot;;

renderTemplate(t, ss_indir, ss_outdir, &quot;index.htm&quot;, ss_tpl_index, ret); // Zeile 155
</code></pre>
<p>Die Signatur von <em>renderTemplate</em>:</p>
<pre><code>void renderTemplate(Template t, stringstream in, stringstream out, string filename, stringstream tpl, stringstream &amp;ss_ret)
</code></pre>
<p>(Ich brauche <em>ss_ret</em> später noch mal, ich baue mir damit eine Art &quot;Protokoll&quot; zusammen, deswegen hätte ich da gern eine Reference.)</p>
<p>Und jetzt mal ganz, ganz langsam:</p>
<p>Hä?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/337722/nltemplate-c2280-verweis-auf-gelöschte-funktion</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 19:43:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337722.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 23 Apr 2016 21:50:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to NLTemplate: C2280 - Verweis auf gelöschte Funktion on Sun, 08 May 2016 20:27:10 GMT]]></title><description><![CDATA[<p>Mrgn,</p>
<p>ich versuche gerade einen Seitengenerator in C++ (Compiler = cl.exe aus VS2015) zu schreiben; einfach aus Spaß. (Wenn er fertig ist, mache ich hier natürlich einen großen Ankündigungsbeitrag, damit ihr meinen grauenhaften Code genüßlich zerreißen könnt. ;)) Als Templatesystem nutze ich <a href="https://github.com/catnapgames/NLTemplate" rel="nofollow">NLTemplate</a>. Das geht an sich auch ganz gut, der Democode dort auf der Seite arbeitet wie gewünscht. Jetzt würde ich aber gern die Parserlogik in eine eigene Methode auslagern, damit ich nicht für jede einzelne Ausgabeseite den gleichen Code immer wieder schreiben muss.</p>
<p>Allerdings geht das nicht so, wie ich das gern hätte:</p>
<blockquote>
<p>src\main.cpp(155): error C2280: &quot;std::basic_stringstream&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;::basic_stringstream(const std::basic_stringstream&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt; &amp;)&quot; : Es wurde versucht, auf eine gelöschte Funktion zu verweisen<br />
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\sstream(631): note: Siehe Deklaration von &quot;std::basic_stringstream&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;::basic_stringstream&quot;</p>
</blockquote>
<p>In Zeile 155 steht der Aufruf meiner Renderfunktion:</p>
<pre><code>LoaderFile loader;
Template t(loader);

stringstream ret, ss_indir, ss_outdir, ss_tpl_index;
ss_indir &lt;&lt; &quot;indir/&quot;;
ss_outdir &lt;&lt; &quot;outdir/&quot;;
ss_tpl_index &lt;&lt; &quot;templates/default/index.txt&quot;;

renderTemplate(t, ss_indir, ss_outdir, &quot;index.htm&quot;, ss_tpl_index, ret); // Zeile 155
</code></pre>
<p>Die Signatur von <em>renderTemplate</em>:</p>
<pre><code>void renderTemplate(Template t, stringstream in, stringstream out, string filename, stringstream tpl, stringstream &amp;ss_ret)
</code></pre>
<p>(Ich brauche <em>ss_ret</em> später noch mal, ich baue mir damit eine Art &quot;Protokoll&quot; zusammen, deswegen hätte ich da gern eine Reference.)</p>
<p>Und jetzt mal ganz, ganz langsam:</p>
<p>Hä?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493886</guid><dc:creator><![CDATA[Pulk]]></dc:creator><pubDate>Sun, 08 May 2016 20:27:10 GMT</pubDate></item><item><title><![CDATA[Reply to NLTemplate: C2280 - Verweis auf gelöschte Funktion on Sat, 23 Apr 2016 22:07:17 GMT]]></title><description><![CDATA[<p>stringstream hat keinen Copykonstrunktor. In, out und tpl sind also das Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493887</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 23 Apr 2016 22:07:17 GMT</pubDate></item><item><title><![CDATA[Reply to NLTemplate: C2280 - Verweis auf gelöschte Funktion on Sat, 23 Apr 2016 22:11:38 GMT]]></title><description><![CDATA[<p>Streams im allgemeinen, und somit auch Stringstreams im speziellen, sind nicht kopierbar. Man kann sie daher nicht direkt als Argumente einer Funktion benutzen, da dazu eine Kopie nötig wäre. Du möchtest möglicherweise lieber eine Referenz auf die Streams als Funktionsargument benutzen. Aber Funktionen die speziell einen <em>String</em>stream erwarten sind sehr, sehr ungewöhnlich. Soll das nicht vielleicht eher ein allgemeiner istream/ostream/iostream oder möglicherweise sogar ein input- bzw. output-Iterator sein? Und weiterhin der Dateiname vielleicht eher ein Stream? Dein derzeitiges Design ist extrem restriktiv für den Benutzer, obige Vorschläge würden deine Funktion sehr viel besser benutzbar machen, ohne erkennbare Nachteile.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493888</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 23 Apr 2016 22:11:38 GMT</pubDate></item><item><title><![CDATA[Reply to NLTemplate: C2280 - Verweis auf gelöschte Funktion on Sat, 23 Apr 2016 22:13:22 GMT]]></title><description><![CDATA[<p>Nun ja, an dieser Stelle im Code hätte ich halt gern ein paar concatenierte Strings. Sind das automatisch alles <em>istreams</em> (statt <em>stringstreams</em>)? Wahrscheinlich hat Java mich da verdorben, da macht man ja alles mit Stringbuffern.</p>
<p>Aber wie sage ich der Funktion dann, dass sie meinen <em>ret</em>-Stream weiterschreiben soll, wenn ich ihn nicht übergeben kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493889</guid><dc:creator><![CDATA[Pulk]]></dc:creator><pubDate>Sat, 23 Apr 2016 22:13:22 GMT</pubDate></item><item><title><![CDATA[Reply to NLTemplate: C2280 - Verweis auf gelöschte Funktion on Sat, 23 Apr 2016 22:26:42 GMT]]></title><description><![CDATA[<p>Der ret Stream ist als einziger unproblematsich. Liest du eigentlich die Antworten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493890</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 23 Apr 2016 22:26:42 GMT</pubDate></item><item><title><![CDATA[Reply to NLTemplate: C2280 - Verweis auf gelöschte Funktion on Sat, 23 Apr 2016 22:31:27 GMT]]></title><description><![CDATA[<p>Ach so! Ich dachte, <em>stringstream</em> wäre allgemein ein Problem. Nein, ich stand nur gerade auf dem Schlauch. Alles andere als <em>string</em> zu übergeben löst den Fehler. Puh...</p>
<p>Erst mal vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493891</guid><dc:creator><![CDATA[Pulk]]></dc:creator><pubDate>Sat, 23 Apr 2016 22:31:27 GMT</pubDate></item></channel></rss>