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.
@ 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.
@ 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: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 --
2001-12-12 19:56 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 --
2002-02-17 18:42 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).