<?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[namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2]]></title><description><![CDATA[<p>Dear users,</p>
<p>a have posted my problem a view days ago, but i think it was not well<br />
specified.<br />
Let me describe my problem again.<br />
I've got a project, which i should upgrade to a namespace functionality<br />
and to compile it under the 4.x version.</p>
<p>I prepared every file with namespace namespacename { ...} and with it<br />
the problem occurs, that the compiler warns the ostream endl method.</p>
<p>The endl method itself is overloaded with the option to write the output<br />
to a file and/or to screen in the project.</p>
<p>the compile says following error message:</p>
<pre><code>(compiler error 3.4)
g++-3.4  -I./Include -DABACUS_SYS_LINUX -DABACUS_COMPILER_GCC34 -Wall
-O3   -c sources/lp.cc -o tmp/linux20-gcc34/lp.o
sources/lp.cc: In function `std::ostream&amp;
abacus::operator&lt;&lt;(std::ostream&amp;, const abacus::ABA_LP&amp;)':
sources/lp.cc:321: warning: the address of `abacus::ABA_OSTREAM&amp;
abacus::endl(abacus::ABA_OSTREAM&amp;)', will always evaluate as `true'
sources/lp.cc:323: warning: the address of `abacus::ABA_OSTREAM&amp;
abacus::endl(abacus::ABA_OSTREAM&amp;)', will always evaluate as `true'
sources/lp.cc:325: warning: the address of `abacus::ABA_OSTREAM&amp;
abacus::endl(abacus::ABA_OSTREAM&amp;)', will always evaluate as `true'
</code></pre>
<p>..............................................</p>
<pre><code>(compiler error 4.1.2 )
g++-4.1  -I./Include -DABACUS_SYS_LINUX -DABACUS_COMPILER_GCC34 -Wall
-O3   -c sources/lp.cc -o tmp/linux20-gcc41/lp.o
./Include/abacus/array.h: In member function 'const
abacus::ABA_ARRAY&lt;Type&gt;&amp; abacus::ABA_ARRAY&lt;Type&gt;::operator=(const
abacus::ABA_BUFFER&lt;Type&gt;&amp;)':
./Include/abacus/array.h:401: error: no match for 'operator&lt;&lt;' in
'(((abacus::ABA_ARRAY&lt;Type&gt;*)this)-&gt;abacus::ABA_ARRAY&lt;Type&gt;::glob_-&gt;.abacus::ABA_GLOBAL::er
r() &lt;&lt; &quot;size of ABA_ARRAY too small.&quot;) &lt;&lt; std::endl'
./Include/abacus/ostream.h:94: note: candidates are:
abacus::ABA_OSTREAM&amp; abacus::ABA_OSTREAM::operator&lt;&lt;(char)
./Include/abacus/ostream.h:95: note:
abacus::ABA_OSTREAM&amp; abacus::ABA_OSTREAM::operator&lt;&lt;(unsigned char)
./Include/abacus/ostream.h:96: note:
abacus::ABA_OSTREAM&amp; abacus::ABA_OSTREAM::operator&lt;&lt;(signed char)
./Include/abacus/ostream.h:97: note:
abacus::ABA_OSTREAM&amp; abacus::ABA_OSTREAM::operator&lt;&lt;(short int)
./Include/abacus/ostream.h:98: note:
abacus::ABA_OSTREAM&amp; abacus::ABA_OSTREAM::operator&lt;&lt;(short unsigned int)
</code></pre>
<p>...................................................................</p>
<p>It looks like every call of endl in any overloading function will be<br />
warned by compiler V3.4.<br />
The hint to address endl explicit with std::endl is a nasty solution in<br />
my eyes, but leads to success under V3.4.</p>
<p>Under the new compiler every endl-method at any place will be marked as<br />
error (like above error message), even with std::endl!!</p>
<p>For the 4.1 Version i tried ABA_OSTREAM::endl but same error- message:</p>
<pre><code>error: no match for 'operator&lt;&lt;' in (...) &lt;&lt; abacus::ABA_OSTREAM::endl'
./Include/abacus/ostream.h:94: note: candidates are:
abacus::ABA_OSTREAM&amp; abacus::ABA_OSTREAM::operator&lt;&lt;(char)
...
</code></pre>
<p>I really hope, that anyone can help me <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>Thanks a lot.</p>
<p>Mark</p>
<p>In addition: Hear i post an excerpt of headerfile and sourcefile from my<br />
ostream class and the corresponding array.h file.</p>
<pre><code class="language-cpp">headerfile:
......................

#ifndef ABA_OSTREAM_H
#define ABA_OSTREAM_H
#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;
#include &quot;abacus/abacusroot.h&quot;
namespace abacus {
...
class ABA_OSTREAM;
typedef ABA_OSTREAM&amp;(*ABA_OSTREAM_MANIP)(ABA_OSTREAM&amp;);  

class  ABA_OSTREAM:public ostream,public ABA_ABACUSROOT{
    public:
      ABA_OSTREAM(ostream &amp;out, const char *logStreamName = 0);

      ~ABA_OSTREAM();
      ABA_OSTREAM&amp;operator&lt;&lt;(char o);
      ABA_OSTREAM&amp;operator&lt;&lt;(const ABA_LPVARSTAT &amp;o);
      ABA_OSTREAM&amp;operator&lt;&lt;(const ABA_CSENSE &amp;o);
      ABA_OSTREAM&amp;operator&lt;&lt;(const ABA_LP &amp;o);
 //here comes more.............
      ofstream* log() const;
      friend ABA_OSTREAM&amp; flush(ABA_OSTREAM &amp;o);
      friend ABA_OSTREAM&amp; endl(ABA_OSTREAM &amp;o);

    private:

      ostream  &amp;out_;

      bool      on_;
      bool      logOn_;
      ofstream *log_;
  };

} // End of Namespace
#endif // ABA_OSTREAM_H

sourcefile:
.................................
#include &quot;abacus/ostream.h&quot;
#include &quot;abacus/string.h&quot;
#include &quot;abacus/history.h&quot;
...

namespace abacus{
..
  ABA_OSTREAM&amp; flush(ABA_OSTREAM &amp;o)
  {
    if (o.on_) o.out_ &lt;&lt; flush;
    if(o.logOn_) *(o.log_) &lt;&lt; flush;
    return o;
  }

  ABA_OSTREAM&amp; endl(ABA_OSTREAM &amp;o)
  {
    o &lt;&lt; '\n';
    if (o.on_) o.out_ &lt;&lt; flush;
    if(o.logOn_) *(o.log_) &lt;&lt; flush;
    return o;
  }

} // End of Namespace

array.h
............

#ifndef ABA_ARRAY_H
#define ABA_ARRAY_H
#include &lt;iostream&gt;
using namespace std;

#include &quot;abacus/global.h&quot;
#include &quot;abacus/buffer.h&quot;

namespace abacus {

#ifdef ABACUS_NEW_TEMPLATE_SYNTAX
template&lt;class Type&gt; 
class  ABA_ARRAY;
template&lt;class Type&gt; 
ostream&amp; operator&lt;&lt; (ostream&amp; out, const ABA_ARRAY&lt;Type&gt; &amp;array);
#endif

  template &lt;class Type&gt; class  ABA_ARRAY : public ABA_ABACUSROOT  {
    public:

      ABA_ARRAY(ABA_GLOBAL *glob, int size);
      ABA_ARRAY(ABA_GLOBAL *glob, int size, Type init);
      ABA_ARRAY(ABA_GLOBAL *glob, const ABA_BUFFER&lt;Type&gt; &amp;buf);

      ABA_ARRAY(const ABA_ARRAY&lt;Type&gt; &amp;rhs);

      ~ABA_ARRAY();
      const ABA_ARRAY&lt;Type&gt;&amp; operator=(const ABA_ARRAY&lt;Type&gt;&amp; rhs);
      const ABA_ARRAY&lt;Type&gt;&amp; operator=(const ABA_BUFFER&lt;Type&gt;&amp; rhs);

      friend ostream&amp; operator&lt;&lt; (ostream&amp; out, const ABA_ARRAY&lt;Type&gt;
&amp;array);

      Type&amp; operator[](int i);

      const Type&amp; operator[](int i) const;
...
    private:

      ABA_GLOBAL *glob_;
      int         n_;
...
  };

template &lt;class Type&gt; 
  inline ABA_ARRAY&lt;Type&gt;::ABA_ARRAY(ABA_GLOBAL *glob, int size)
    : 
    glob_(glob),  
    n_(size)
  {
#ifdef ABACUSSAFE
    if (size &lt; 0) {
      glob_-&gt;err() &lt;&lt; &quot;ABA_ARRAY::ABA_ARRAY(): cannot construct array
with negative size&quot; &lt;&lt; endl;
      exit(Fatal);
    }
#endif  
    a_ = new Type[size];
}

..
 template &lt;class Type&gt;
 const ABA_ARRAY&lt;Type&gt;&amp; ABA_ARRAY&lt;Type&gt;::operator=(const
ABA_ARRAY&lt;Type&gt;&amp; rhs)
 {
 if (this == &amp;rhs) return *this;
  if (n_ != rhs.n_) {
     glob_-&gt;err() &lt;&lt; &quot;ABA_ARRAY::operator= : dimensions of left and
right hand side &quot;;
     glob_-&gt;err() &lt;&lt; &quot;are different (&quot; &lt;&lt; n_ &lt;&lt; &quot; != &quot; &lt;&lt; rhs.n_ &lt;&lt; &quot;)&quot;
&lt;&lt; endl;
     exit(Fatal);
     }

 glob_ = rhs.glob_;
 n_    = rhs.n_;

 for (int i = 0; i &lt; n_; i++) a_[i] = rhs[i];

 return *this;
 }

template &lt;class Type&gt;
  const ABA_ARRAY&lt;Type&gt;&amp; ABA_ARRAY&lt;Type&gt;::operator=(const
ABA_BUFFER&lt;Type&gt;&amp; rhs)
  {
    if (n_ &lt; rhs.size()) {
      glob_-&gt;err() &lt;&lt; &quot;ABA_ARRAY::operator=(const
ABA_BUFFER&amp;):&quot;&lt;&lt;endl; //OR ????-&gt; ABA_OSTREAM::endl;
      glob_-&gt;err() &lt;&lt; &quot;size of ABA_ARRAY too small.&quot;&lt;&lt;endl;
      exit(Fatal);
    }

    const int rhsNumber = rhs.number();

    for (int i = 0; i &lt; rhsNumber; i++) a_[i] = rhs[i];

    return *this;

  }

  template &lt;class Type&gt;
  ostream&amp; operator&lt;&lt;(ostream &amp;out, const ABA_ARRAY&lt;Type&gt; &amp;array)
  {
    const int s = array.size();

    for (int i = 0; i &lt; s; i++) out &lt;&lt; i &lt;&lt; &quot;: &quot; &lt;&lt; array[i] &lt;&lt; endl;
    return out;
  }

} // End of Namespace
#endif  // !ABA_ARRAY_H
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/179804/namespace-endl-gcc-3-4-and-4-1-2</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 11:28:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179804.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Apr 2007 13:36:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Wed, 25 Apr 2007 13:36:49 GMT]]></title><description><![CDATA[<p>Dear users,</p>
<p>a have posted my problem a view days ago, but i think it was not well<br />
specified.<br />
Let me describe my problem again.<br />
I've got a project, which i should upgrade to a namespace functionality<br />
and to compile it under the 4.x version.</p>
<p>I prepared every file with namespace namespacename { ...} and with it<br />
the problem occurs, that the compiler warns the ostream endl method.</p>
<p>The endl method itself is overloaded with the option to write the output<br />
to a file and/or to screen in the project.</p>
<p>the compile says following error message:</p>
<pre><code>(compiler error 3.4)
g++-3.4  -I./Include -DABACUS_SYS_LINUX -DABACUS_COMPILER_GCC34 -Wall
-O3   -c sources/lp.cc -o tmp/linux20-gcc34/lp.o
sources/lp.cc: In function `std::ostream&amp;
abacus::operator&lt;&lt;(std::ostream&amp;, const abacus::ABA_LP&amp;)':
sources/lp.cc:321: warning: the address of `abacus::ABA_OSTREAM&amp;
abacus::endl(abacus::ABA_OSTREAM&amp;)', will always evaluate as `true'
sources/lp.cc:323: warning: the address of `abacus::ABA_OSTREAM&amp;
abacus::endl(abacus::ABA_OSTREAM&amp;)', will always evaluate as `true'
sources/lp.cc:325: warning: the address of `abacus::ABA_OSTREAM&amp;
abacus::endl(abacus::ABA_OSTREAM&amp;)', will always evaluate as `true'
</code></pre>
<p>..............................................</p>
<pre><code>(compiler error 4.1.2 )
g++-4.1  -I./Include -DABACUS_SYS_LINUX -DABACUS_COMPILER_GCC34 -Wall
-O3   -c sources/lp.cc -o tmp/linux20-gcc41/lp.o
./Include/abacus/array.h: In member function 'const
abacus::ABA_ARRAY&lt;Type&gt;&amp; abacus::ABA_ARRAY&lt;Type&gt;::operator=(const
abacus::ABA_BUFFER&lt;Type&gt;&amp;)':
./Include/abacus/array.h:401: error: no match for 'operator&lt;&lt;' in
'(((abacus::ABA_ARRAY&lt;Type&gt;*)this)-&gt;abacus::ABA_ARRAY&lt;Type&gt;::glob_-&gt;.abacus::ABA_GLOBAL::er
r() &lt;&lt; &quot;size of ABA_ARRAY too small.&quot;) &lt;&lt; std::endl'
./Include/abacus/ostream.h:94: note: candidates are:
abacus::ABA_OSTREAM&amp; abacus::ABA_OSTREAM::operator&lt;&lt;(char)
./Include/abacus/ostream.h:95: note:
abacus::ABA_OSTREAM&amp; abacus::ABA_OSTREAM::operator&lt;&lt;(unsigned char)
./Include/abacus/ostream.h:96: note:
abacus::ABA_OSTREAM&amp; abacus::ABA_OSTREAM::operator&lt;&lt;(signed char)
./Include/abacus/ostream.h:97: note:
abacus::ABA_OSTREAM&amp; abacus::ABA_OSTREAM::operator&lt;&lt;(short int)
./Include/abacus/ostream.h:98: note:
abacus::ABA_OSTREAM&amp; abacus::ABA_OSTREAM::operator&lt;&lt;(short unsigned int)
</code></pre>
<p>...................................................................</p>
<p>It looks like every call of endl in any overloading function will be<br />
warned by compiler V3.4.<br />
The hint to address endl explicit with std::endl is a nasty solution in<br />
my eyes, but leads to success under V3.4.</p>
<p>Under the new compiler every endl-method at any place will be marked as<br />
error (like above error message), even with std::endl!!</p>
<p>For the 4.1 Version i tried ABA_OSTREAM::endl but same error- message:</p>
<pre><code>error: no match for 'operator&lt;&lt;' in (...) &lt;&lt; abacus::ABA_OSTREAM::endl'
./Include/abacus/ostream.h:94: note: candidates are:
abacus::ABA_OSTREAM&amp; abacus::ABA_OSTREAM::operator&lt;&lt;(char)
...
</code></pre>
<p>I really hope, that anyone can help me <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>Thanks a lot.</p>
<p>Mark</p>
<p>In addition: Hear i post an excerpt of headerfile and sourcefile from my<br />
ostream class and the corresponding array.h file.</p>
<pre><code class="language-cpp">headerfile:
......................

#ifndef ABA_OSTREAM_H
#define ABA_OSTREAM_H
#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;
#include &quot;abacus/abacusroot.h&quot;
namespace abacus {
...
class ABA_OSTREAM;
typedef ABA_OSTREAM&amp;(*ABA_OSTREAM_MANIP)(ABA_OSTREAM&amp;);  

class  ABA_OSTREAM:public ostream,public ABA_ABACUSROOT{
    public:
      ABA_OSTREAM(ostream &amp;out, const char *logStreamName = 0);

      ~ABA_OSTREAM();
      ABA_OSTREAM&amp;operator&lt;&lt;(char o);
      ABA_OSTREAM&amp;operator&lt;&lt;(const ABA_LPVARSTAT &amp;o);
      ABA_OSTREAM&amp;operator&lt;&lt;(const ABA_CSENSE &amp;o);
      ABA_OSTREAM&amp;operator&lt;&lt;(const ABA_LP &amp;o);
 //here comes more.............
      ofstream* log() const;
      friend ABA_OSTREAM&amp; flush(ABA_OSTREAM &amp;o);
      friend ABA_OSTREAM&amp; endl(ABA_OSTREAM &amp;o);

    private:

      ostream  &amp;out_;

      bool      on_;
      bool      logOn_;
      ofstream *log_;
  };

} // End of Namespace
#endif // ABA_OSTREAM_H

sourcefile:
.................................
#include &quot;abacus/ostream.h&quot;
#include &quot;abacus/string.h&quot;
#include &quot;abacus/history.h&quot;
...

namespace abacus{
..
  ABA_OSTREAM&amp; flush(ABA_OSTREAM &amp;o)
  {
    if (o.on_) o.out_ &lt;&lt; flush;
    if(o.logOn_) *(o.log_) &lt;&lt; flush;
    return o;
  }

  ABA_OSTREAM&amp; endl(ABA_OSTREAM &amp;o)
  {
    o &lt;&lt; '\n';
    if (o.on_) o.out_ &lt;&lt; flush;
    if(o.logOn_) *(o.log_) &lt;&lt; flush;
    return o;
  }

} // End of Namespace

array.h
............

#ifndef ABA_ARRAY_H
#define ABA_ARRAY_H
#include &lt;iostream&gt;
using namespace std;

#include &quot;abacus/global.h&quot;
#include &quot;abacus/buffer.h&quot;

namespace abacus {

#ifdef ABACUS_NEW_TEMPLATE_SYNTAX
template&lt;class Type&gt; 
class  ABA_ARRAY;
template&lt;class Type&gt; 
ostream&amp; operator&lt;&lt; (ostream&amp; out, const ABA_ARRAY&lt;Type&gt; &amp;array);
#endif

  template &lt;class Type&gt; class  ABA_ARRAY : public ABA_ABACUSROOT  {
    public:

      ABA_ARRAY(ABA_GLOBAL *glob, int size);
      ABA_ARRAY(ABA_GLOBAL *glob, int size, Type init);
      ABA_ARRAY(ABA_GLOBAL *glob, const ABA_BUFFER&lt;Type&gt; &amp;buf);

      ABA_ARRAY(const ABA_ARRAY&lt;Type&gt; &amp;rhs);

      ~ABA_ARRAY();
      const ABA_ARRAY&lt;Type&gt;&amp; operator=(const ABA_ARRAY&lt;Type&gt;&amp; rhs);
      const ABA_ARRAY&lt;Type&gt;&amp; operator=(const ABA_BUFFER&lt;Type&gt;&amp; rhs);

      friend ostream&amp; operator&lt;&lt; (ostream&amp; out, const ABA_ARRAY&lt;Type&gt;
&amp;array);

      Type&amp; operator[](int i);

      const Type&amp; operator[](int i) const;
...
    private:

      ABA_GLOBAL *glob_;
      int         n_;
...
  };

template &lt;class Type&gt; 
  inline ABA_ARRAY&lt;Type&gt;::ABA_ARRAY(ABA_GLOBAL *glob, int size)
    : 
    glob_(glob),  
    n_(size)
  {
#ifdef ABACUSSAFE
    if (size &lt; 0) {
      glob_-&gt;err() &lt;&lt; &quot;ABA_ARRAY::ABA_ARRAY(): cannot construct array
with negative size&quot; &lt;&lt; endl;
      exit(Fatal);
    }
#endif  
    a_ = new Type[size];
}

..
 template &lt;class Type&gt;
 const ABA_ARRAY&lt;Type&gt;&amp; ABA_ARRAY&lt;Type&gt;::operator=(const
ABA_ARRAY&lt;Type&gt;&amp; rhs)
 {
 if (this == &amp;rhs) return *this;
  if (n_ != rhs.n_) {
     glob_-&gt;err() &lt;&lt; &quot;ABA_ARRAY::operator= : dimensions of left and
right hand side &quot;;
     glob_-&gt;err() &lt;&lt; &quot;are different (&quot; &lt;&lt; n_ &lt;&lt; &quot; != &quot; &lt;&lt; rhs.n_ &lt;&lt; &quot;)&quot;
&lt;&lt; endl;
     exit(Fatal);
     }

 glob_ = rhs.glob_;
 n_    = rhs.n_;

 for (int i = 0; i &lt; n_; i++) a_[i] = rhs[i];

 return *this;
 }

template &lt;class Type&gt;
  const ABA_ARRAY&lt;Type&gt;&amp; ABA_ARRAY&lt;Type&gt;::operator=(const
ABA_BUFFER&lt;Type&gt;&amp; rhs)
  {
    if (n_ &lt; rhs.size()) {
      glob_-&gt;err() &lt;&lt; &quot;ABA_ARRAY::operator=(const
ABA_BUFFER&amp;):&quot;&lt;&lt;endl; //OR ????-&gt; ABA_OSTREAM::endl;
      glob_-&gt;err() &lt;&lt; &quot;size of ABA_ARRAY too small.&quot;&lt;&lt;endl;
      exit(Fatal);
    }

    const int rhsNumber = rhs.number();

    for (int i = 0; i &lt; rhsNumber; i++) a_[i] = rhs[i];

    return *this;

  }

  template &lt;class Type&gt;
  ostream&amp; operator&lt;&lt;(ostream &amp;out, const ABA_ARRAY&lt;Type&gt; &amp;array)
  {
    const int s = array.size();

    for (int i = 0; i &lt; s; i++) out &lt;&lt; i &lt;&lt; &quot;: &quot; &lt;&lt; array[i] &lt;&lt; endl;
    return out;
  }

} // End of Namespace
#endif  // !ABA_ARRAY_H
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1273239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273239</guid><dc:creator><![CDATA[area2051]]></dc:creator><pubDate>Wed, 25 Apr 2007 13:36:49 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Wed, 25 Apr 2007 14:02:41 GMT]]></title><description><![CDATA[<p>Probably not the solution, but my first observation:</p>
<p>area2051 schrieb:</p>
<blockquote>
<p>......</p>
<pre><code class="language-cpp">headerfile:
...
using namespace std;
...

array.h
...
using namespace std;
...
</code></pre>
</blockquote>
<p>This ist a bad idea !<br />
Especially when you want to redefine std-Symbols in your own namespace.</p>
<p>Greetz,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273269</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 25 Apr 2007 14:02:41 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Wed, 25 Apr 2007 14:12:27 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Probably not the solution, but my first observation:</p>
<p>area2051 schrieb:</p>
<blockquote>
<p>......</p>
<pre><code class="language-cpp">headerfile:
...
using namespace std;
...

array.h
...
using namespace std;
...
</code></pre>
</blockquote>
<p>This ist a bad idea !<br />
Especially when you want to redefine std-Symbols in your own namespace.</p>
<p>Greetz,</p>
<p>Simon2.</p>
</blockquote>
<p>Hello Simon,</p>
<p>first of all thank's for your post.<br />
I already thougth about namespace std.<br />
But there are many files at this project using this phrase and including other files which use using std itself again, and an removing all of them wasn't still successful at the end. :-((</p>
<p>Greets</p>
<p>Mark</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273279</guid><dc:creator><![CDATA[area2051]]></dc:creator><pubDate>Wed, 25 Apr 2007 14:12:27 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Wed, 25 Apr 2007 14:25:22 GMT]]></title><description><![CDATA[<p>You should remove them of the Headerfiles. Otherwise you open the namespace std for each and every file in which your header is included, which is probably not what you want.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273291</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Wed, 25 Apr 2007 14:25:22 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Wed, 25 Apr 2007 14:27:22 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>you obviously got stuck in this &quot;namespace solution hell&quot; (hence this thread)... and this &quot;using namespace std in header files&quot; pulls the heat throttle to maximum.</p>
<p>I don't suggest to remove all of the using-clauses - but those in the header. I thought, you wanted to implement an alternative to the std-features ... why force anybody that uses YOUR versions to also &quot;see&quot; the std-Versions ?<br />
That increases the risk of ambiguity errors significantly - imagine, your user uses</p>
<pre><code class="language-cpp">using namespace abacus;
</code></pre>
<p>Greetz,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273294</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 25 Apr 2007 14:27:22 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Wed, 25 Apr 2007 16:29:39 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Hi,</p>
<p>you obviously got stuck in this &quot;namespace solution hell&quot; (hence this thread)... and this &quot;using namespace std in header files&quot; pulls the heat throttle to maximum.</p>
<p>I don't suggest to remove all of the using-clauses - but those in the header. I thought, you wanted to implement an alternative to the std-features ... why force anybody that uses YOUR versions to also &quot;see&quot; the std-Versions ?<br />
That increases the risk of ambiguity errors significantly - imagine, your user uses</p>
<pre><code class="language-cpp">using namespace abacus;
</code></pre>
<p>Greetz,</p>
<p>Simon2.</p>
</blockquote>
<p>hey everyone,</p>
<p>thanks for comments again.<br />
I tried it out, wrote a one-liner that comment out every using namespace std.<br />
But now it's clear, that endl is not recognized by default &quot;endl&quot;.<br />
But with ABA_OSTREAM::endl:</p>
<pre><code>g++-3.4  -I./Include -DABACUS_SYS_LINUX -DABACUS_COMPILER_GCC34 -Wall   -O3   -c sources/lp.cc -o tmp/linux20-gcc34/lp.o
In file included from ./Include/abacus/global.h:61,
                 from ./Include/abacus/master.h:55,
                 from sources/lp.cc:38:
./Include/abacus/hash.h: In function `std::ostream&amp; abacus::operator&lt;&lt;(std::ostream&amp;, const abacus::ABA_HASH&lt;KeyType, ItemType&gt;&amp;)':
./Include/abacus/hash.h:461: error: no match for 'operator&lt;&lt;' in 'out &lt;&lt; abacus::ABA_OSTREAM::endl'
/usr/include/c++/3.4/bits/ostream.tcc:63: note: candidates are: std::basic_ostream&lt;_CharT, _Traits&gt;&amp; std::basic_ostream&lt;_CharT, _Traits&gt;::operator&lt;&lt;(std::basic_ostream&lt;_CharT, _Traits&gt;&amp;(*)(std::basic_ostre
am&lt;_CharT, _Traits&gt;&amp;)) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]
/usr/include/c++/3.4/bits/ostream.tcc:74: note:                 std::basic_ostream&lt;_CharT, _Traits&gt;&amp; std::basic_ostream&lt;_CharT, _Traits&gt;::operator&lt;&lt;(std::basic_ios&lt;_CharT, _Traits&gt;&amp;(*)(std::basic_ios&lt;_Char
T, _Traits&gt;&amp;)) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]
</code></pre>
<p>same procedure as last E-message <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":-("
      alt="😞"
    /></p>
<p>any other ideas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273403</guid><dc:creator><![CDATA[area2051]]></dc:creator><pubDate>Wed, 25 Apr 2007 16:29:39 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Wed, 25 Apr 2007 16:40:31 GMT]]></title><description><![CDATA[<p>If you remove every</p>
<pre><code class="language-cpp">using namespace std;
</code></pre>
<p>from your header files, you'll also have to prepend every single symbol out of the standard namespace in the header with &quot;std::&quot;.</p>
<p>e.g.</p>
<pre><code class="language-cpp">former foo.h:

using namespace std;

string bar;

new foo.h:
std::string bar;
</code></pre>
<p>greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273414</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 25 Apr 2007 16:40:31 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Wed, 25 Apr 2007 17:07:44 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<pre><code class="language-cpp">former foo.h:

using namespace std;

string bar;

new foo.h:
std::string bar;
</code></pre>
<p>greetz, Swordfish</p>
</blockquote>
<p>Even when i overload the endl method?<br />
Like the code posted above there exists an endl in ostream.h ! ??</p>
<p>when i explicit write std::endl - which endl does the compiler use? my overload endl, or the really std::endl?</p>
<p>Greets</p>
<p>Mark</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273433</guid><dc:creator><![CDATA[area2051_1]]></dc:creator><pubDate>Wed, 25 Apr 2007 17:07:44 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Wed, 25 Apr 2007 17:44:06 GMT]]></title><description><![CDATA[<p>If you want to use the Standard endl, use 'std::endl' if you use your own or one contained by a library you're using, you have to know if it is a global symbol or part of a spezific namespace.</p>
<p>greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273460</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 25 Apr 2007 17:44:06 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Thu, 26 Apr 2007 10:44:35 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>If you want to use the Standard endl, use 'std::endl' if you use your own or one contained by a library you're using, you have to know if it is a global symbol or part of a spezific namespace.</p>
<p>greetz, Swordfish</p>
</blockquote>
<p>Hey Swordfish,</p>
<p>i think - that is the origin of my problem.<br />
but how can use my own endl in an specific (same) namespace?<br />
e.g. i'v got a class like</p>
<pre><code class="language-cpp">namespace abacus {

template&lt;class KeyType,class ItemType&gt; class ABA_HASH;
template &lt;class KeyType, class ItemType&gt;
std::ostream &amp;operator&lt;&lt; (std::ostream &amp;out, const ABA_HASH&lt;KeyType, ItemType&gt; &amp;hash);

 template &lt;class KeyType, class ItemType&gt;
  class  ABA_HASH :  public ABA_ABACUSROOT  { 
    public:
      ABA_HASH(ABA_GLOBAL *glob, int size);
      ~ABA_HASH();
      friend std::ostream &amp;operator&lt;&lt; (std::ostream &amp;out, 
                                     const ABA_HASH&lt;KeyType, ItemType&gt; &amp;hash);
        };

template &lt;class KeyType, class ItemType&gt;
  std::ostream &amp;operator&lt;&lt;(std::ostream &amp;out, const ABA_HASH&lt;KeyType, ItemType&gt; &amp;hash)
  {

    //DO SOMETHING 
        out &lt;&lt; endl;
      }  
    }  
    return out;
  }
} // End of Namespace
</code></pre>
<p>and the endl should be the abacus::endl;</p>
<p>Greets<br />
Mark</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273827</guid><dc:creator><![CDATA[area2051]]></dc:creator><pubDate>Thu, 26 Apr 2007 10:44:35 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Thu, 26 Apr 2007 11:44:41 GMT]]></title><description><![CDATA[<p>Sorry, I seem to be a little blind now, but where do you declare the abacus::endl, I can't see it anywhere in your code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273865</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Thu, 26 Apr 2007 11:44:41 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Thu, 26 Apr 2007 11:58:11 GMT]]></title><description><![CDATA[<p>area2051 schrieb:</p>
<blockquote>
<p>...<br />
but how can use my own endl in an specific (same) namespace?...</p>
</blockquote>
<p>Just say it:</p>
<p>area2051 schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">...
template &lt;class KeyType, class ItemType&gt;
  std::ostream &amp;operator&lt;&lt;(std::ostream &amp;out, const ABA_HASH&lt;KeyType, ItemType&gt; &amp;hash)
  {

    //DO SOMETHING 
        out &lt;&lt; abacus::endl;
      }  
    }  
    return out;
  }
} // End of Namespace
</code></pre>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Bye,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273882</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 26 Apr 2007 11:58:11 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Thu, 26 Apr 2007 11:58:24 GMT]]></title><description><![CDATA[<p>Shinja schrieb:</p>
<blockquote>
<p>Sorry, I seem to be a little blind now, but where do you declare the abacus::endl, I can't see it anywhere in your code.</p>
</blockquote>
<p>i feel the same, but it's written in the middle part.<br />
Here again:</p>
<pre><code class="language-cpp">sourcefile:
.................................
#include &quot;abacus/ostream.h&quot;
#include &quot;abacus/string.h&quot;
#include &quot;abacus/history.h&quot;
...

namespace abacus{
..
  ABA_OSTREAM&amp; flush(ABA_OSTREAM &amp;o)
  {
    if (o.on_) o.out_ &lt;&lt; flush;
    if(o.logOn_) *(o.log_) &lt;&lt; flush;
    return o;
  }

  ABA_OSTREAM&amp; endl(ABA_OSTREAM &amp;o)
  {
    o &lt;&lt; '\n';
    if (o.on_) o.out_ &lt;&lt; flush;
    if(o.logOn_) *(o.log_) &lt;&lt; flush;
    return o;
  }

} // End of Namespace
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1273883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273883</guid><dc:creator><![CDATA[area2051_1]]></dc:creator><pubDate>Thu, 26 Apr 2007 11:58:24 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Thu, 26 Apr 2007 12:18:50 GMT]]></title><description><![CDATA[<p>maybe the endl overload is written the wrong way?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273908</guid><dc:creator><![CDATA[area2051]]></dc:creator><pubDate>Thu, 26 Apr 2007 12:18:50 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Thu, 26 Apr 2007 13:33:45 GMT]]></title><description><![CDATA[<p>area2051 schrieb:</p>
<blockquote>
<p>maybe the endl overload is written the wrong way?</p>
</blockquote>
<p>Hi!</p>
<ol>
<li>It _might_ be a good idea to derive from std but I'd always prefer to aggregate.</li>
<li>There are a lot of assuptions in this thread about the namespace of a certain expression. On th eother hand you _are_ deploying namespaces.<br />
So what's the point in _not_ decriminating exactly by using</li>
</ol>
<pre><code class="language-cpp">std::endl
</code></pre>
<p>?<br />
Often ( e.g in CORBA Implementaiotns or in the the STL itself ) namepsaces beak up the normal &quot;flow&quot; of reading code.<br />
But here these 5(!) characters 'std::' just make things clearer and more easy to read.</p>
<p>The actual error is quite a simple one:<br />
This is waht gcc conplaints \1:</p>
<pre><code class="language-cpp">out &lt;&lt; abacus::ABA_OSTREAM::endl
</code></pre>
<p>Thst means, there's no<br />
(*)</p>
<pre><code class="language-cpp">abacus::ABA_OSTREAM::endl(std::ostream&amp;)
</code></pre>
<p>And there _is_ none,instead a</p>
<pre><code class="language-cpp">friend ABA_OSTREAM&amp; endl(ABA_OSTREAM &amp;o);
</code></pre>
<p>which he cannot use. ( Btw the &quot;friend&quot; keyword is obsolete. )<br />
The compiler can _downcast_ to an ancestor but never _upcast_ to a descendent!</p>
<p><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="😉"
    /></p>
<p>Regards</p>
<p>Gast++</p>
<p>*( Why and how this comes is tricky !<br />
Pls read<br />
Bjarne Stroustroup<br />
&quot;The C++ Programmiersprache&quot;<br />
4.Auflage Addison Wesley 2000</p>
<p>§21.4.6 )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273987</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Thu, 26 Apr 2007 13:33:45 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Thu, 26 Apr 2007 18:59:45 GMT]]></title><description><![CDATA[<p>Hey Gast <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>Gast++ schrieb:</p>
<blockquote>
<p>The actual error is quite a simple one:<br />
This is waht gcc conplaints \1:</p>
<pre><code class="language-cpp">out &lt;&lt; abacus::ABA_OSTREAM::endl
</code></pre>
<p>Thst means, there's no<br />
(*)</p>
<pre><code class="language-cpp">abacus::ABA_OSTREAM::endl(std::ostream&amp;)
</code></pre>
<p>And there _is_ none,instead a</p>
<pre><code class="language-cpp">friend ABA_OSTREAM&amp; endl(ABA_OSTREAM &amp;o);
</code></pre>
<p>which he cannot use. ( Btw the &quot;friend&quot; keyword is obsolete. )</p>
</blockquote>
<p>and what do you thing, the correct phrase should be ?</p>
<p>Gast++ schrieb:</p>
<blockquote>
<p>The compiler can _downcast_ to an ancestor but never _upcast_ to a descendent!</p>
</blockquote>
<p>so i think it's still a downcast, isn't it?</p>
<p>as time goes by, i'm really getting sick <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":-("
      alt="😞"
    /></p>
<p>Mark</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274192</guid><dc:creator><![CDATA[area2051]]></dc:creator><pubDate>Thu, 26 Apr 2007 18:59:45 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Thu, 26 Apr 2007 19:19:03 GMT]]></title><description><![CDATA[<p>By the way,<br />
i think, the problem is independent from namespace!<br />
Because when i compile it without namespace, the same error -mesage occurs.</p>
<p>Greets<br />
Mark</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274198</guid><dc:creator><![CDATA[area2051]]></dc:creator><pubDate>Thu, 26 Apr 2007 19:19:03 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Thu, 26 Apr 2007 22:28:16 GMT]]></title><description><![CDATA[<p>To be recognized as an standard basic_ostream manipulator, a funtion needs to have a specific signature, that is:</p>
<pre><code class="language-cpp">basic_ostream&lt;charT,traits&gt;&amp; ()(basic_ostream&lt;charT,traits&gt;&amp;) // or
basic_ios&lt;charT,traits&gt;&amp; ()(basic_ios&lt;charT,traits&gt;&amp;) // or
ios_base&amp; ()(ios_base&amp;)
</code></pre>
<p>your function</p>
<pre><code class="language-cpp">ABA_OSTREAM&amp; endl(ABA_OSTREAM &amp;o)
</code></pre>
<p>doesn't match either signature and thus requires its own overload of operator&lt;&lt;<br />
In addition, since you have declared your own overloads of &lt;&lt; within your class, all overloads inherited from basic_ostream are being hidden (not those declared as free function though - and this mess is one of the reasons to stick with one method of overloading) - so even using std::endl will not find a suitable overload of operator &lt;&lt; to call. You could use a using declaration to make those overloads visible, but it might interfere with the overloads you already have.<br />
Either way, probably the best solution is to introduce proper overloads of &lt;&lt; for stream manipulators. like</p>
<pre><code class="language-cpp">class  ABA_OSTREAM:public ostream,public ABA_ABACUSROOT{
/* ... */
    ABA_OSTREAM&amp; operator&lt;&lt;(ostream&amp; (*pf)(ostream&amp;)) { pf( *this ); return *this; }
    ABA_OSTREAM&amp; operator&lt;&lt;(ios&amp; (*pf)(ios&amp;)) { pf( *this ); return *this; }
    ABA_OSTREAM&amp; operator&lt;&lt;(ios_base&amp; (*pf)(ios&amp;)) { pf( *this ); return *this; }
    ABA_OSTREAM&amp; operator&lt;&lt;(ABA_OSTREAM&amp; (*pf)(ABA_OSTREAM&amp;)) { return pf( *this ); }
/* ... */
  };
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1274211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274211</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 26 Apr 2007 22:28:16 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Fri, 27 Apr 2007 13:07:20 GMT]]></title><description><![CDATA[<p>area2051 schrieb:</p>
<blockquote>
<p>By the way,<br />
i think, the problem is independent from namespace!<br />
Because when i compile it without namespace, the same error -mesage occurs.</p>
<p>Greets<br />
Mark</p>
</blockquote>
<p>I don't intend to enter a C++-style discussion with you.<br />
Not really; it seems you don't even know the basics.</p>
<p>Many postings told you to be careful about namespaces, Stroustoup tells us so na dou are yet still stuck with your problem but refuse to improve code readabillity...</p>
<p>It's your problem if you can't read y&lt;ou own code, not mine, you're aware of that? The compiler van read even the worst code, that's no measure.</p>
<p>Best Regards</p>
<p>Gast++</p>
<p>P.S.: I told you where the probelm actually is, and camper showed you a soulution - do you really think it's appropriate to start coding a fundamental library this way?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274608</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Fri, 27 Apr 2007 13:07:20 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Fri, 27 Apr 2007 14:10:44 GMT]]></title><description><![CDATA[<p>Hello to everyone,</p>
<p>Gast++ schrieb:</p>
<blockquote>
<p>I don't intend to enter a C++-style discussion with you.<br />
Not really; it seems you don't even know the basics.</p>
</blockquote>
<p>I think you are right. I don't know these &quot;basics&quot;, this was my first big project, in which i was thrown in. And my backround is indeed not so clear as you may think. <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="😉"
    /></p>
<p>Gast++ schrieb:</p>
<blockquote>
<p>It's your problem if you can't read y&lt;ou own code, not mine, you're aware of that? The compiler van read even the worst code, that's no measure.</p>
</blockquote>
<p>It's really hard to understand if it's ironic or not, but i was always been friendly and your aren't liable to my problem.</p>
<p>Gast++ schrieb:</p>
<blockquote>
<p>P.S.: I told you where the probelm actually is, and camper showed you a soulution - do you really think it's appropriate to start coding a fundamental library this way?</p>
</blockquote>
<p>so i worked this mornig at these problem and a really have to say thankyou to you (gast++) and to camper. In my eyes i think it's a little bit difficulter to do deal with that kind of problem on a project, i've taken over, as to write an own prog and maintain itself, isn't it?</p>
<p>So i'm really glad that I found some big helper.</p>
<p>greetings<br />
Mark</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274675</guid><dc:creator><![CDATA[area2051]]></dc:creator><pubDate>Fri, 27 Apr 2007 14:10:44 GMT</pubDate></item><item><title><![CDATA[Reply to namespace&#x2F;endl&#x2F; gcc 3.4 and 4.1.2 on Fri, 27 Apr 2007 14:41:52 GMT]]></title><description><![CDATA[<p>never read Stroustroup but i guess it'll look similar to this method avoiding the nasty friend functions:<br />
<a href="http://tutorial.schornboeck.net/operatoren_ueberladung2.htm" rel="nofollow">http://tutorial.schornboeck.net/operatoren_ueberladung2.htm</a><br />
you dont have to understand the german text, just look the code. the operator overload works nice although there is no friend function at all but .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274690</guid><dc:creator><![CDATA[Se_Godfaser]]></dc:creator><pubDate>Fri, 27 Apr 2007 14:41:52 GMT</pubDate></item></channel></rss>