c++/5543: Conversions and template functions

Wolfgang Bangerth bangerth@ticam.utexas.edu
Wed Jan 22 20:46:00 GMT 2003


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

From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: gcc-bugs@gcc.gnu.org, <gcc-gnats@gcc.gnu.org>
Cc:  
Subject: Re: c++/5543: Conversions and template functions
Date: Wed, 22 Jan 2003 14:44:27 -0600 (CST)

 This is a simpler testcase:
 --------------------
 template <class> struct type {};
 
 template <class S> void foo (type<S>);
 
 template <class T>
 struct C {
     operator T();
 };
 
 int main () {
   C<type<int> > c;
   foo (c);
 }
 --------------------------
 
 gcc fails, because it can't find an instance of foo(C<type<int> >). It 
 could, however, if it tried to apply the conversion operator of C first, 
 but I don't know whether it is required to do so. I suspect not, since it 
 also fails for icc7.
 
 W.
 
 -------------------------------------------------------------------------
 Wolfgang Bangerth             email:            bangerth@ticam.utexas.edu
                               www: http://www.ticam.utexas.edu/~bangerth/
 
 



More information about the Gcc-prs mailing list