# Template Function cif::operator*(const matrix_expression<M1>&, const matrix_expression<M2>&)

- Defined in File matrix.hpp

## Function Documentation

template<typename M1, typename M2, std::enable_if_t<not std::is_floating_point_v<M2>, int> = 0>
auto cif::operator*(const matrix_expression<M1> &m1, const matrix_expression<M2> &m2)

  First implementation of operator*, enabled if the second parameter is not a scalar and thus must be a matrix, right?