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