<?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[string frage]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich will eine log Methode definieren, die ich idealerweise so aufrufen kann:</p>
<p>logThis(&quot;Ein Satz &quot; + getIndex() + &quot; wird geloggt\n&quot;);</p>
<p>Wobei getIndex einen int oder double zurückliefert. Kann doch eigentlich nicht so schwer sein, oder? Aber irgendwie raff ich es nicht.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/262144/string-frage</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 16:13:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/262144.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 01 Mar 2010 16:59:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to string frage on Mon, 01 Mar 2010 16:59:13 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich will eine log Methode definieren, die ich idealerweise so aufrufen kann:</p>
<p>logThis(&quot;Ein Satz &quot; + getIndex() + &quot; wird geloggt\n&quot;);</p>
<p>Wobei getIndex einen int oder double zurückliefert. Kann doch eigentlich nicht so schwer sein, oder? Aber irgendwie raff ich es nicht.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862855</guid><dc:creator><![CDATA[uwerothfeld]]></dc:creator><pubDate>Mon, 01 Mar 2010 16:59:13 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Mon, 01 Mar 2010 17:04:37 GMT]]></title><description><![CDATA[<p>Genau so wirst du es wohl nicht hinkriegen, aber du kannst es doch mit printf-Syntax oder als Stream machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862864</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Mon, 01 Mar 2010 17:04:37 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Mon, 01 Mar 2010 17:11:07 GMT]]></title><description><![CDATA[<p>Im C++ Sinne ist der Stream natürlich hübsch. Mit einem Funktions-C-Cast ginge es auch:</p>
<pre><code class="language-cpp">logThis(std::string(&quot;This is the end &quot;) + &quot;my only friend&quot;);
</code></pre>
<p>Ist aber weniger schön. Im Vergleich zu matzes Variante:</p>
<pre><code class="language-cpp">std::ofstream ofs(&quot;save.log&quot;, std::ios_base::binary | std::ios_base::app);
std::streambuf* buf = std::clog.rdbuf(ofs.rdbuf());
std::clog &lt;&lt; &quot;Ein Satz &quot; &lt;&lt; GetIndex() &lt;&lt; &quot; wird geloggt.&quot;
std::clog.rdbuf(buf);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1862871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862871</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Mon, 01 Mar 2010 17:11:07 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Mon, 01 Mar 2010 17:32:07 GMT]]></title><description><![CDATA[<p>wie wäre es hier mit ?</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;     
using namespace std;

void logThis(string a,int x, string b)
{ cout&lt;&lt;a&lt;&lt;x&lt;&lt;b; }
main()
{

logThis(&quot;Nach &quot;,2,&quot; Bier nicht mehr fahren!&quot;);

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1862881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862881</guid><dc:creator><![CDATA[rotondo]]></dc:creator><pubDate>Mon, 01 Mar 2010 17:32:07 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Mon, 01 Mar 2010 17:57:33 GMT]]></title><description><![CDATA[<p>Mach eine simple log-Datei, die du dann mit Stream-Operatoren fütterst. Geht einfach und ist jederzeit nach dem Programmende lesbar.</p>
<pre><code class="language-cpp">#incluse &lt;fstream.h&gt;          // Deklarationen
#include &lt;iomanip.h&gt;
#include &lt;iostream.h&gt;

ofstream log;                 // Stream festlegen  

log.open(&quot;LOGFILE.LOG&quot;);      // log-Datei anlegen zum Programmstart
log.setf(ios::fixed);         // Stream-Manipulatoren für float / double 
log.setf(ios::floatfield);    // festlegen
log.setf(ios::showpoint);

log &lt;&lt; &quot;Ein integer    &quot; &lt;&lt; intValue    &lt;&lt; &quot;  ist geloggt&quot; &lt;&lt; endl;
log &lt;&lt; &quot;Ein double     &quot; &lt;&lt; doubleValue &lt;&lt; &quot;  ist geloggt&quot; &lt;&lt; endl;

log.close();                  // log-Datei schliessen zum Programmende
</code></pre>
<p>Ich benutze diesen Weg für alle Programmentwicklungen zur Protokollierung, was im Programm geschieht und espare mir damit oft aufwendiges debug. Statt wie hier<br />
intValue und doubleValue kannst du auch deine Funktion GetIndex() einsetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862896</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Mon, 01 Mar 2010 17:57:33 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Mon, 01 Mar 2010 18:05:44 GMT]]></title><description><![CDATA[<p>berniebutt schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;fstream.h&gt;
#include &lt;iomanip.h&gt;
#include &lt;iostream.h&gt;
</code></pre>
</blockquote>
<p>Diese Header gibt es im C++-Standard nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862900</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Mon, 01 Mar 2010 18:05:44 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Mon, 01 Mar 2010 19:03:56 GMT]]></title><description><![CDATA[<p>rotondo schrieb:</p>
<blockquote>
<p>wie wäre es hier mit ?</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;     
using namespace std;

void logThis(string a,int x, string b)
{ cout&lt;&lt;a&lt;&lt;x&lt;&lt;b; }
main()
{

logThis(&quot;Nach &quot;,2,&quot; Bier nicht mehr fahren!&quot;);

}
</code></pre>
</blockquote>
<p>Er will doch was Dynamisches und nicht immer genau einen string, ein int und noch einen string loggen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862938</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Mon, 01 Mar 2010 19:03:56 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Tue, 02 Mar 2010 00:02:32 GMT]]></title><description><![CDATA[<p>Das macht man mit boost so:</p>
<pre><code class="language-cpp">logThis(&quot;Ein Satz &quot; + lexical_cast&lt;string&gt;(getIndex()) + &quot; wird geloggt\n&quot;);
</code></pre>
<p>Und ohne boost solltest du eine Art lexical_cast selbst implementieren oder nach VCL-Art Funktionen wie IntToStr und DoubleToStr implementieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863037</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Tue, 02 Mar 2010 00:02:32 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Tue, 02 Mar 2010 06:40:31 GMT]]></title><description><![CDATA[<p>Athar schrieb:</p>
<blockquote>
<p>Das macht man mit boost so:</p>
<pre><code class="language-cpp">logThis(&quot;Ein Satz &quot; + lexical_cast&lt;string&gt;(getIndex()) + &quot; wird geloggt\n&quot;);
</code></pre>
<p>Und ohne boost solltest du eine Art lexical_cast selbst implementieren oder nach VCL-Art Funktionen wie IntToStr und DoubleToStr implementieren.</p>
</blockquote>
<p>Operation geglückt, Patient tot. Schlagzeile morgen: Spatz von Kanone erschossen.<br />
Findest das nicht n bissle Overkill, dem Ganzen jetzt gleich mit lexical_cast beizukommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863058</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 02 Mar 2010 06:40:31 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Tue, 02 Mar 2010 10:53:06 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>berniebutt schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;fstream.h&gt;
#include &lt;iomanip.h&gt;
#include &lt;iostream.h&gt;
</code></pre>
</blockquote>
<p>Diese Header gibt es im C++-Standard nicht.</p>
</blockquote>
<p>Stimmt nicht, sonst könnte man die Stream-Klassen von C++ nicht einsetzen! Steht so explizit auch in meinen Compiler-Beschreibungen. Mir erscheint mein Vorschlag einfacher und besser als die sonst hier vorgeschlagenen Frickeleien.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863208</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Tue, 02 Mar 2010 10:53:06 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Tue, 02 Mar 2010 11:09:01 GMT]]></title><description><![CDATA[<p>berniebutt schrieb:</p>
<blockquote>
<p>krümelkacker schrieb:</p>
<blockquote>
<p>berniebutt schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;fstream.h&gt;
#include &lt;iomanip.h&gt;
#include &lt;iostream.h&gt;
</code></pre>
</blockquote>
<p>Diese Header gibt es im C++-Standard nicht.</p>
</blockquote>
<p>Stimmt nicht, sonst könnte man die Stream-Klassen von C++ nicht einsetzen!</p>
</blockquote>
<p>Die Streamklassen aus dem Standard befinden sich in &lt;fstream&gt;, &lt;iomanip&gt; und &lt;iostream&gt;, ohne .h am Ende. die genannten Header werden allerdings AFAIK im Standard erwähnt und als veraltet gekennzeichnet, IIRC müssen Compiler sie daher nciht mehr unterstützen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863213</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 02 Mar 2010 11:09:01 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Tue, 02 Mar 2010 11:28:56 GMT]]></title><description><![CDATA[<p>Ich würde wahrscheinlich eine Logger-Klasse bereitstellen, die intern einen Stream besitzt und den <code>operator&lt;&lt;</code> anbietet (als Funktionstemplate). Somit kann man im C++-Stil loggen, die Werte werden an den Stream weitergeleitet.</p>
<p>Jetzt etwas hinzufrickeln, nur damit man unbedingt + benutzen kann, halte ich nicht für sinnvoll. Wir sind schliesslich nicht in Java.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863227</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 02 Mar 2010 11:28:56 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Tue, 02 Mar 2010 15:41:32 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Operation geglückt, Patient tot. Schlagzeile morgen: Spatz von Kanone erschossen.<br />
Findest das nicht n bissle Overkill, dem Ganzen jetzt gleich mit lexical_cast beizukommen?</p>
</blockquote>
<p>Durchaus nicht, lexical_cast ist hier genau das passende Mittel. lexical_cast hat auch eher die Schlagkraft eines Federballs, davon wird der Spatz schon nicht umkommen.<br />
Die Variante ist sogar geringfügig einfacher als einen operator&lt;&lt; anzubieten, jedenfalls wenn die Logeinträge einen obligatorischen Header haben müssen (Zeitstempel, Thread-/Client-/...-ID...).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863381</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Tue, 02 Mar 2010 15:41:32 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Tue, 02 Mar 2010 15:54:05 GMT]]></title><description><![CDATA[<p>Athar schrieb:</p>
<blockquote>
<p>Durchaus nicht, lexical_cast ist hier genau das passende Mittel.</p>
</blockquote>
<p>Nein.</p>
<p>Athar schrieb:</p>
<blockquote>
<p>Die Variante ist sogar geringfügig einfacher als einen operator&lt;&lt; anzubieten</p>
</blockquote>
<p>Und auch geringfügig einfacher zu verwenden, oder?</p>
<pre><code class="language-cpp">Log(&quot;Bild Nummer &quot; + lexical_cast&lt;std::string&gt;(number) + &quot; geladen (Grösse &quot; + lexical_cast&lt;std::string&gt;(image.GetWidth()) + &quot;x&quot; + lexical_cast&lt;std::string&gt;(image.GetHeight()) + &quot;)&quot;);
</code></pre>
<p>vs.</p>
<pre><code class="language-cpp">Log &lt;&lt; &quot;Bild Nummer &quot; &lt;&lt; number &lt;&lt; &quot; geladen (Grösse &quot; &lt;&lt; image.GetWidth() + &quot;x&quot; + &lt;&lt; image.GetHeight() &lt;&lt; &quot;)&quot;;
</code></pre>
<p>Athar schrieb:</p>
<blockquote>
<p>jedenfalls wenn die Logeinträge einen obligatorischen Header haben müssen (Zeitstempel, Thread-/Client-/...-ID...).</p>
</blockquote>
<p>Dafür kann man einen speziellen Wert einrichten, sowas wie <code>std::endl</code> . Wenn man sonstige Formatierungen einrichten möchte (z.B. neuer Absatz, Untertitel oder irgendwas), ist man wiederum flexibler mit dem Stream-Operator. Andererseits geht natürlich auch etwas in der Art:</p>
<pre><code class="language-cpp">Log.Flush();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1863386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863386</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 02 Mar 2010 15:54:05 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Tue, 02 Mar 2010 16:49:31 GMT]]></title><description><![CDATA[<p>Wieso nicht einfach <code>std::clog</code> nutzen? Das ist genau dafür gemacht. Nix eigener Stream oder operator&lt;&lt; überladen.</p>
<blockquote>
<p>&gt; oder nach VCL-Art Funktionen wie IntToStr und DoubleToStr implementieren.</p>
</blockquote>
<p>Bloß nicht. Zum Glück gibt's das nicht im Standard-C++.</p>
<blockquote>
<p>&gt; Mir erscheint mein Vorschlag einfacher und besser als die sonst hier vorgeschlagenen Frickeleien.</p>
</blockquote>
<p>Einen Streampuffer zu wechseln ist absolut keine Frickelei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863428</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Tue, 02 Mar 2010 16:49:31 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Tue, 02 Mar 2010 17:36:13 GMT]]></title><description><![CDATA[<p>Ad aCTa schrieb:</p>
<blockquote>
<blockquote>
<p>&gt; Mir erscheint mein Vorschlag einfacher und besser als die sonst hier vorgeschlagenen Frickeleien.</p>
</blockquote>
</blockquote>
<p>Manche mögen Dinge eben kompliziert und wollen alles nutzen, was C++ so bietet. Es geht nur um Streams und die kann man direkt mit was auch immer beschicken und entscheiden, wo die Ausgaben landen sollen. Alle Frickeleien sind suspekt und damit entbehrlich. Ich verstehe nicht, warum man sich um so etwas überhaupt Gedanken macht. Man macht das so nebenbei. Gehört zum Handwerkszeug der Programmierung.<br />
daddeldu :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863455</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Tue, 02 Mar 2010 17:36:13 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Tue, 02 Mar 2010 18:21:42 GMT]]></title><description><![CDATA[<blockquote>
<p>&gt; und die kann man direkt mit was auch immer beschicken und entscheiden, wo die Ausgaben landen sollen. Alle Frickeleien sind suspekt und damit entbehrlich.</p>
</blockquote>
<p>Au weia. Streams und Buffer sind absolut keine Frickeleien. std::clog auch nicht.</p>
<blockquote>
<p>&gt; Ich verstehe nicht, warum man sich um so etwas überhaupt Gedanken macht.</p>
</blockquote>
<p>Dann solltest du dir lieber über dieses Thema ein paar Gedanken machen, am besten mit dem Struppi, der erläutert das recht schön.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863469</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Tue, 02 Mar 2010 18:21:42 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Fri, 05 Mar 2010 12:24:53 GMT]]></title><description><![CDATA[<p>hi leute,</p>
<p>also interessante diskussion, auch wenn ich nur die hälfte der details verstehe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> ich habe es über ein satz macros gelöst, nicht wirklich schön, ging aber schnell. danke euch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864703</guid><dc:creator><![CDATA[uwerothfeld_]]></dc:creator><pubDate>Fri, 05 Mar 2010 12:24:53 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Fri, 05 Mar 2010 13:05:44 GMT]]></title><description><![CDATA[<p>Ad aCTa schrieb:</p>
<blockquote>
<p>Dann solltest du dir lieber über dieses Thema ein paar Gedanken machen, am besten mit dem Struppi, der erläutert das recht schön.</p>
</blockquote>
<p>Ist Struppi dein Hund - wie soll ich ihn fragen und weiss der was vom Programmieren? Hier scheint es wieder einmal eine heisse Diskussion zu geben, ob nur pures C++ oder für einfache Dinge auch mal schlicht mit ANSI-C gemacht. Schliesst sich ja nicht aus. Man macht das einfach und fertig! Zum letzten Beitrag des Fragestellers: Macros würde ich hier nicht einsetzen.<br />
Thema für mich: daddeldu <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864732</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Fri, 05 Mar 2010 13:05:44 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Fri, 05 Mar 2010 14:03:46 GMT]]></title><description><![CDATA[<p>berniebutt schrieb:</p>
<blockquote>
<p>Ist Struppi dein Hund - wie soll ich ihn fragen und weiss der was vom Programmieren?</p>
</blockquote>
<p>Dieser Hund hat immerhin die Sprache erfunden.</p>
<blockquote>
<p>Hier scheint es wieder einmal eine heisse Diskussion zu geben, ob nur pures C++ oder für einfache Dinge auch mal schlicht mit ANSI-C gemacht.</p>
</blockquote>
<p>Wo ist hier bitte eine C-Lösung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864746</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Fri, 05 Mar 2010 14:03:46 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Fri, 05 Mar 2010 14:12:48 GMT]]></title><description><![CDATA[<p>berniebutt schrieb:</p>
<blockquote>
<p>Zum letzten Beitrag des Fragestellers: Macros würde ich hier nicht einsetzen.<br />
Thema für mich: daddeldu <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Natürlich setzt man fürs Logging ein Makro ein. Aus dem selben Grunde, aus dem man für assert ein Makro verwendet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864747</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 05 Mar 2010 14:12:48 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Fri, 05 Mar 2010 14:19:51 GMT]]></title><description><![CDATA[<p>Ich hab mir zum debuggen und loggen neulich was realtiv simples geschrieben:</p>
<pre><code class="language-cpp">class Log
{
  static ostream&amp; instance(std::string const&amp; name = &quot;mylog.log&quot;)
  {
    static std::ofstream of(name.c_str());
    return of;
  }
public:
  static void init(std::string const&amp; name)
  {
    (void*)instance(name);
  }

  static ostream&amp; log()
  {
    return instance();
  }
  static ostream&amp; debug()
  {
  #ifdef _DEBUG
    return instance() &lt;&lt; &quot;DBG:&gt;&gt;&gt; &quot;;
  #else
    static struct dummyostream : public std::ostream
    {
      template &lt;typename T&gt; dummyostream&amp; operator&lt;&lt; (T const&amp;) {return *this;}
    } os;
    return os;
  #endif
  }
};

int main()
{
  Log::init(&quot;optionalalternativername.log&quot;);
  Log::log() &lt;&lt; &quot;alles ok&quot; &lt;&lt; endl;
  Log::debug() &lt;&lt; &quot;Zeile &quot; &lt;&lt; __LINE__ &lt;&lt; &quot; erreicht&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1864751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864751</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 05 Mar 2010 14:19:51 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Fri, 05 Mar 2010 14:25:02 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Natürlich setzt man fürs Logging ein Makro ein. Aus dem selben Grunde, aus dem man für assert ein Makro verwendet.</p>
</blockquote>
<p>Nur wenn man das Logging per PP-Flag komplett ausschalten will UND bereit ist dafür auf variable Parameterzahlen und den ganzen Kram zu verzichten bzw. sich den Output dann doch irgendwie wieder irgendwie on the Fly zusammenschustert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864753</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 05 Mar 2010 14:25:02 GMT</pubDate></item><item><title><![CDATA[Reply to string frage on Fri, 05 Mar 2010 14:33:45 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>UND bereit ist dafür auf variable Parameterzahlen und den ganzen Kram zu verzichten bzw. sich den Output dann doch irgendwie wieder irgendwie on the Fly zusammenschustert.</p>
</blockquote>
<pre><code class="language-cpp">#ifdef DEBUGGE_DU_SAU
#define debug(msg) cout &lt;&lt; (msg);
#else
#define debug(msg);
#endif
</code></pre>
<p>Oder so ähnlich. Schön ist das natürlich nicht, widerlegt aber deine Aussage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864759</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Fri, 05 Mar 2010 14:33:45 GMT</pubDate></item></channel></rss>