In addition to each taste in the syntax (which may be subjective), the main difference is that, by means of a vector, a vector is actually another type that decomposes into a matrix, and when using an assistant containing typedef, the vector is an alias of the matrix (at least for partial specialization).
The difference requires that the vector redefine the constructors (which were not inherited) or some potential traps in the case of operations defined in terms of specialized specialization (with typedef, they will never be considered as "differnet")
source
share