1 // PR c++/57043 2 // { dg-do link } 3 4 template<typename D> struct complex { }; 5 6 template<typename Tp> 7 complex<Tp> pow(const complex<Tp> & x,const complex<Tp> & y)8pow(const complex<Tp>& x, const complex<Tp>& y) { return complex<Tp>(); } 9 10 template<typename T, typename U> 11 struct promote_2 { typedef T type; }; 12 13 template<typename Tp, typename Up> 14 complex<typename promote_2<Tp, Up>::type> 15 pow(const complex<Tp>& x, const complex<Up>& y); 16 17 complex<double> (*powcc)(const complex<double>&, const complex<double>&) = pow; 18 main()19int main() {} 20