C++0xならdecltypeがつかえるんじゃないか?
template <typename Y, typename Z>
friend Vector<decltype((Y)0+(Z)0)> operator+( const Vector<Z>& x, const Vector<Y>& y){