Maybe you know this, but let me explain this.
Names begin with an underscore followed by an uppercase letter are
reserved to compilers for any use (C++ Standard §184.108.40.206.2).
So it is unsafe to use template parameter's name like _Scalar, _Rows, etc.
How about changing these names to Scalar_, Rows_, …?
We know this, and we don't really care until we actually run into a collision. Let us know if you have.
I didn't have any problem with this. So it may be unnecessary concern.
Bug 658 is an example for a collision.
I would vote for changing all possibly colliding names (even though some are unlikely to be used by a compiler).