This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: overloaded templated ostream-operator: gcc can't find the right one.
- To: gcc-bugs at gcc dot gnu dot org
- Subject: Re: overloaded templated ostream-operator: gcc can't find the right one.
- From: Johan Myhre Andersen <jma at cpk dot auc dot dk>
- Date: Wed, 01 Mar 2000 21:46:48 +0100
- CC: "Martin v. Loewis" <martin at loewis dot home dot cs dot tu-berlin dot de>
- References: <38BD3AA2.E5CF1A2F@cpk.auc.dk>
Sorry to bug you before.
Here comes the right bug-report. I had changed the example before to
make it work. Here is the original .cc which cause the problem.
When pair in main is not const, it does not work. gcc fails to find
operator<< defined for const pair. Instead it tries to use operator<<
that I definded for template T, which is supposed to be a container.
--Johan
Johan Myhre Andersen wrote:
>
> Hello,
>
> I think I found a bug. To illustrate it I made the attached example.
> With more than one templated overloaded ostream operator, gcc has
> trouble finding the right one. It fails to convert a non-const argument
> to a const arg. when the function is called. Instead it tries to match
> the call to the wrong function.
> I run solaris2.5.1 on a Sun Sparc.
>
> Command-line for compilation/linking:
> /pack/gcc-2.95.2/bin/g++ -v --save-temps -g template_ostream_test.cc -o
> template_ostream_test.exe -R/pack/gcc-2.95.2/lib &>
> template_ostream_test.make.log
>
> attached is a .tar.gz with
> template_ostream_test.cc
> template_ostream_test.make.log
> template_ostream_test.ii
no: > template_ostream_test.o
> template_ostream_test.s
>
> Enjoy! :)
>
> Regards,
> Johan Andersen,
> Aalborg University
>
> ------------------------------------------------------------------------
> Name: template_ostream_test.tar.gz
> template_ostream_test.tar.gz Type: Unix Tape Archive (application/x-tar)
> Encoding: base64
template_ostream_test.tar.gz