template <int N>
class Vector
{
};
template <int M, int N>
class Matrix
{
};
template <int M, int N>
Vector<N> operator*(const Vector<M>& other,
const Matrix<M + 1, N>& that)
{
return Vector<N>();
}
int main()
{
Vector<3> a;
Matrix<4, 4> m;
a * m;
return 0;
}