<?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[basic_ostream und &amp;lt;&amp;lt; operator]]></title><description><![CDATA[<p>hi,</p>
<p>in der ios_base werden ja die fmtflags (hex, dec, ...) als &quot;static const fmtflags blabla&quot; definiert, wobei fmtflags ein normales typedef zu sein scheint. Wie überlädt die STL dann denn &lt;&lt; operator (zB in basic_ostream [abgelitten von ios_base]) für fmtflags? Ich mein fmtflags ist ja (leider) in C++ kein wirklich neuer Typ, d.h. wenn ich fmtflags zB vom Typ int mache, dann kann ich nicht gleichzeitig den &lt;&lt; operator für int und für fmtflags überladen. Des führt zu nem Compilerfehler. Aber wie macht des die STL dann?</p>
<p>Danke für alle Antworten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/146342/basic_ostream-und-lt-lt-operator</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 17:37:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/146342.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 06 May 2006 21:33:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to basic_ostream und &amp;lt;&amp;lt; operator on Sat, 06 May 2006 21:33:25 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>in der ios_base werden ja die fmtflags (hex, dec, ...) als &quot;static const fmtflags blabla&quot; definiert, wobei fmtflags ein normales typedef zu sein scheint. Wie überlädt die STL dann denn &lt;&lt; operator (zB in basic_ostream [abgelitten von ios_base]) für fmtflags? Ich mein fmtflags ist ja (leider) in C++ kein wirklich neuer Typ, d.h. wenn ich fmtflags zB vom Typ int mache, dann kann ich nicht gleichzeitig den &lt;&lt; operator für int und für fmtflags überladen. Des führt zu nem Compilerfehler. Aber wie macht des die STL dann?</p>
<p>Danke für alle Antworten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052295</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Sat, 06 May 2006 21:33:25 GMT</pubDate></item><item><title><![CDATA[Reply to basic_ostream und &amp;lt;&amp;lt; operator on Sun, 07 May 2006 00:52:37 GMT]]></title><description><![CDATA[<p>fmtflags ist wie folgt in ios_base definiert:</p>
<pre><code class="language-cpp">enum _Ios_Fmtflags 
  {
     //-- Hier sind alle Formatflags aufgeführt
      _S_boolalpha 	= 1L &lt;&lt; 0,
      _S_dec 		= 1L &lt;&lt; 1,
     // ..
 }

  class ios_base
  {
  public:
      typedef _Ios_Fmtflags fmtflags;
  // ..
  };
</code></pre>
<p>Damit ist <strong>fmtflags</strong> eindeutig ein neuer Datentyp für C++ und kann für die Überladung der &lt;&lt; - operatoren verwendet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052368</guid><dc:creator><![CDATA[tvdog]]></dc:creator><pubDate>Sun, 07 May 2006 00:52:37 GMT</pubDate></item><item><title><![CDATA[Reply to basic_ostream und &amp;lt;&amp;lt; operator on Sun, 07 May 2006 08:58:14 GMT]]></title><description><![CDATA[<p>Danke, hat mir sehr weitergeholfen. Noch eine Frage: In welcher Klasse wird den der &lt;&lt; Operator für fmtflags überladen? in ios_base, basic_ios, basic_ostream oder erst in ostream?</p>
<p>Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>[edit: gibts irgendwo ne gute Referenz über das Innenleben der STL?]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052423</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Sun, 07 May 2006 08:58:14 GMT</pubDate></item><item><title><![CDATA[Reply to basic_ostream und &amp;lt;&amp;lt; operator on Mon, 08 May 2006 07:09:09 GMT]]></title><description><![CDATA[<p>Ich wußte gar nicht, daß es überhaupt einen überladenen op&lt;&lt; für Fomatflags gibt. Die Maipulatoren, mit denen du die Flags setzen kannst, haben zwar teilweise den selben Namen, sind aber etwas völlig eigenständiges.</p>
<p>bluecode schrieb:</p>
<blockquote>
<p>[edit: gibts irgendwo ne gute Referenz über das Innenleben der STL?]</p>
</blockquote>
<p><a href="http://www.cppreference.de" rel="nofollow">www.cppreference.de</a> ist ein guter Anlaufpunkt. Außerdem erscheint diese Woche der zweite Teil meine Serie im Magazin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1053118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053118</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 08 May 2006 07:09:09 GMT</pubDate></item><item><title><![CDATA[Reply to basic_ostream und &amp;lt;&amp;lt; operator on Mon, 08 May 2006 15:34:36 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Ich wußte gar nicht, daß es überhaupt einen überladenen op&lt;&lt; für Fomatflags gibt. Die Maipulatoren, mit denen du die Flags setzen kannst, haben zwar teilweise den selben Namen, sind aber etwas völlig eigenständiges.</p>
</blockquote>
<p>Wird bei</p>
<pre><code class="language-cpp">std::cout &lt;&lt; std::hex;
</code></pre>
<p>etwa nicht der Operator</p>
<pre><code class="language-cpp">std::ostream &amp;operator &lt;&lt; (std::ostream &amp;, std::fmtflags);
</code></pre>
<p>aufgerufen? Wenn nicht, welcher dann? Ich verstehs grad net wirklich...</p>
<p>Ich kenne <a href="http://cppreference.com" rel="nofollow">cppreference.com</a> schon und find des nicht wirklich ne tolle Referenz (wie gesagt für das Innenleben). Ich bräucht halt paar mehr Informationen, weil ich für meinen Kernel teilweise ne standardlib nachprogrammieren will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1053513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053513</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Mon, 08 May 2006 15:34:36 GMT</pubDate></item><item><title><![CDATA[Reply to basic_ostream und &amp;lt;&amp;lt; operator on Tue, 09 May 2006 06:32:49 GMT]]></title><description><![CDATA[<p>bluecode schrieb:</p>
<blockquote>
<p>Wird bei</p>
<pre><code class="language-cpp">std::cout &lt;&lt; std::hex;
</code></pre>
<p>etwa nicht der Operator</p>
<pre><code class="language-cpp">std::ostream &amp;operator &lt;&lt; (std::ostream &amp;, std::fmtflags);
</code></pre>
<p>aufgerufen? Wenn nicht, welcher dann? Ich verstehs grad net wirklich...</p>
</blockquote>
<p>Nein, vor allem da die Formatflags nicht frei im Namensraum std stehen (die Flags sind Teil von std::ios_base). Im Namensraum std hast du aber eine Funktion &quot;basic_ios&lt;&gt;&amp; hex(basic_ios&lt;&gt;&amp;)&quot;, die dort oben eingesetzt wird - und die &quot;triggert&quot; einen</p>
<pre><code class="language-cpp">std::ostream&amp; operator&lt;&lt;(std::ostream&amp;, std::ios&amp;(*)(std::ios&amp;));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1053855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053855</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 09 May 2006 06:32:49 GMT</pubDate></item></channel></rss>