public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/5098: Compile error for operator<<(ostream&, const std::string&) when a template definition defined within namespace and has an operator<< defined as a friend.
@ 2002-02-17 18:42 rodrigc
  0 siblings, 0 replies; 4+ messages in thread
From: rodrigc @ 2002-02-17 18:42 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, ilya, nobody

Synopsis: Compile error for operator<<(ostream&, const std::string&) when a template definition defined within namespace and has an operator<< defined as a friend.

State-Changed-From-To: feedback->closed
State-Changed-By: rodrigc
State-Changed-When: Sun Feb 17 18:42:50 2002
State-Changed-Why:
    Sorry for the delay.
    
    I received your testcase, and cannot reproduce the
    error with gcc 3.0.3

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5098


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: c++/5098: Compile error for operator<<(ostream&, const std::string&) when a template definition defined within namespace and has an operator<< defined as a friend.
@ 2001-12-12 19:56 rodrigc
  0 siblings, 0 replies; 4+ messages in thread
From: rodrigc @ 2001-12-12 19:56 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c++/5098; it has been noted by GNATS.

From: rodrigc@gcc.gnu.org
To: gcc-bugs@gcc.gnu.org, gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org,
  ilya@vailsys.com, nobody@gcc.gnu.org
Cc:  
Subject: Re: c++/5098: Compile error for operator<<(ostream&, const std::string&) when a template definition defined within namespace and has an operator<< defined as a friend.
Date: 13 Dec 2001 03:53:28 -0000

 Synopsis: Compile error for operator<<(ostream&, const std::string&) when a template definition defined within namespace and has an operator<< defined as a friend.
 
 State-Changed-From-To: open->feedback
 State-Changed-By: rodrigc
 State-Changed-When: Wed Dec 12 19:53:28 2001
 State-Changed-Why:
     No file attachment received with this PR.  Can you
     send it to me directly?
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&pr=5098&database=gcc


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: c++/5098: Compile error for operator<<(ostream&, const std::string&) when a template definition defined within namespace and has an operator<< defined as a friend.
@ 2001-12-12 19:53 rodrigc
  0 siblings, 0 replies; 4+ messages in thread
From: rodrigc @ 2001-12-12 19:53 UTC (permalink / raw)
  To: gcc-bugs, gcc-gnats, gcc-prs, ilya, nobody

Synopsis: Compile error for operator<<(ostream&, const std::string&) when a template definition defined within namespace and has an operator<< defined as a friend.

State-Changed-From-To: open->feedback
State-Changed-By: rodrigc
State-Changed-When: Wed Dec 12 19:53:28 2001
State-Changed-Why:
    No file attachment received with this PR.  Can you
    send it to me directly?

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&pr=5098&database=gcc


^ permalink raw reply	[flat|nested] 4+ messages in thread

* c++/5098: Compile error for operator<<(ostream&, const std::string&) when a template definition defined within namespace and has an operator<< defined as a friend.
@ 2001-12-12 13:46 ilya
  0 siblings, 0 replies; 4+ messages in thread
From: ilya @ 2001-12-12 13:46 UTC (permalink / raw)
  To: gcc-gnats


>Number:         5098
>Category:       c++
>Synopsis:       Compile error for operator<<(ostream&, const std::string&) when a template definition defined within namespace and has an operator<< defined as a friend.
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Dec 12 13:46:03 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     ilya@vailsys.com
>Release:        2.95.3
>Organization:
>Environment:
SunOS vss06 5.8 Generic_108529-11 i86pc i386 i86pc
>Description:
A simple piece of code produces a compilation error 
'no match for `_IO_ostream_withassign & << string &', in presence of namespace for a template that has its own 'operator<<' defined.
If there is no namespace (compile without -DNAMESPACE) everything compiles as expected.
--------------------------------------------------------
uname -a
SunOS vss06 5.8 Generic_108529-11 i86pc i386 i86pc
----------------------------------------------------
----------------------------------------------------
compile options
g++ -DNAMESPACE -o namespace2 namespace2.cpp
----------------------------------------------------
----------------------------------------------------
g++ -v -save-temps  -DNAMESPACE -o namespace2 namespace2.cpp

Reading specs from /opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/specs
gcc version 2.95.3 20010315 (release)
 /opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/cpp0 -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dunix -D__svr4__ -D__SVR4 -Dsun -D__unix__ -D__svr4__ -D__SVR4 -D__sun__ -D__unix -D__sun -Asystem(svr4) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -DNAMESPACE namespace2.cpp namespace2.ii
GNU CPP version 2.95.3 20010315 (release) (i386 System V Release 4)
#include "..." search starts here:
#include <...> search starts here:
 /opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3
 /opt/sfw/include
 /opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../i386-pc-solaris2.8/include
 /opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
 /opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/cc1plus namespace2.ii -quiet -dumpbase namespace2.cc -version -o namespace2.s
GNU C++ version 2.95.3 20010315 (release) (i386-pc-solaris2.8) compiled by GNU C version 2.95.3 20010315 (release).
namespace2.cpp: In function `int main()':
namespace2.cpp:39: no match for `_IO_ostream_withassign & << string &'
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:77: candidates are: class ostream & ostream::operator <<(char)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:78:                 class ostream & ostream::operator <<(unsigned char)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:79:                 class ostream & ostream::operator <<(signed char)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:80:                 class ostream & ostream::operator <<(const char *)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:82:                 class ostream & ostream::operator <<(const unsigned char *)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:84:                 class ostream & ostream::operator <<(const signed char *)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:85:                 class ostream & ostream::operator <<(const void *)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:86:                 class ostream & ostream::operator <<(int)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:87:                 class ostream & ostream::operator <<(unsigned int)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:88:                 class ostream & ostream::operator <<(long int)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:89:                 class ostream & ostream::operator <<(long unsigned int)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:91:                 class ostream & ostream::operator <<(long long int)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:92:                 class ostream & ostream::operator <<(long long unsigned int)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:94:                 class ostream & ostream::operator <<(short int)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:95:                 class ostream & ostream::operator <<(short unsigned int)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:97:                 class ostream & ostream::operator <<(bool)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:99:                 class ostream & ostream::operator <<(double)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:100:                 class ostream & ostream::operator <<(float)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:104:                 class ostream & ostream::operator <<(long double)
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:106:                 class ostream & ostream::operator <<(ostream & (*)(ostream &))
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:107:                 class ostream & ostream::operator <<(ios & (*)(ios &))
/opt/sfw/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/../../../../include/g++-3/iostream.h:108:                 class ostream & ostream::operator <<(streambuf *)
namespace2.cpp:10:                 class ostream & xyz::operator <<(ostream &, const xyz::ResourcePool<int> &)


>How-To-Repeat:
Try to compile the attached file with -DNAMESPACE and without it. The only difference is that in the latter a template class defined in a global scope.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2002-02-18  2:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-02-17 18:42 c++/5098: Compile error for operator<<(ostream&, const std::string&) when a template definition defined within namespace and has an operator<< defined as a friend rodrigc
  -- strict thread matches above, loose matches on Subject: below --
2001-12-12 19:56 rodrigc
2001-12-12 19:53 rodrigc
2001-12-12 13:46 ilya

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).