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