1 // { dg-do link  }
2 
3 template <class T>
4 class ConstArray {
5 };
6 
7 template <class T1, class T2>
8 void operator+(const ConstArray<T1>&, const ConstArray<T2>&)
9 {
10 }
11 
12 template <class T1, class T2>
13 void operator+(const ConstArray<T1>&, T2);
14 
15 template <class T1, class T2>
16 void operator+(T1, const ConstArray<T2>&);
17 
cai()18 const ConstArray<int> cai() { return ConstArray<int>(); }
cad()19 const ConstArray<double> cad() { return ConstArray<double>(); }
20 
main()21 int main()
22 {
23   cai () + cad ();
24 }
25