This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: c++/5543: Conversions and template functions


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/



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]