c++/5543: Conversions and template functions
Wolfgang Bangerth
bangerth@ticam.utexas.edu
Wed Jan 22 20:56:00 GMT 2003
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-bugs
mailing list