// Build don't run:

template <class T>
class ConstArray {
};

template <class T1, class T2>
void operator+(const ConstArray<T1>&, const ConstArray<T2>&)
{
}

template <class T1, class T2>
void operator+(const ConstArray<T1>&, T2);

template <class T1, class T2>
void operator+(T1, const ConstArray<T2>&);

const ConstArray<int> cai() { return ConstArray<int>(); }
const ConstArray<double> cad() { return ConstArray<double>(); }

int main()
{
  cai () + cad ();
}
