MSVC runs into problems when a forward declaration is using a different template type name than the actual declaration. This fixes the recent issues we observed on MSVC systems.
MSVC runs into problems when a forward declaration is using a different template type name than the actual declaration.
This fixes the recent issues we observed on MSVC systems.

rotorliu/eigen,madlib/eigen_backup,rotorliu/eigen,madlib/eigen_backup,mjbshaw/Eigen,mjbshaw/Eigen,mjbshaw/Eigen,madlib/eigen_backup,madlib/eigen_backup,rotorliu/eigen,mjbshaw/Eigen,rotorliu/eigen