QGenericMatrix multiplication order

QGenericMatrix<M1, M2, T> operator* ( const QGenericMatrix<N, M2, T> & m1, const QGenericMatrix<M1, N, T> & m2 )
Hi All,
that is the multiplication operator signature, but there is something that confuses me.if result matrix A is m1 x m2 matrix, a left hand operand should be B m1 x n matrix while the right one C n x m2.
Why the parameters are inverted in the parameters list?
In that way I should code A = C * B but really I mean B * C
This should be related to pre or post multiply a matrix to another one, but it is very counterintuitivebest regards,
daniele