Add fully generic Vector<Type,Size> and RowVector<Type,Size> type aliases.
diff --git a/Eigen/src/Core/Matrix.h b/Eigen/src/Core/Matrix.h
index e7df4a9..4b71432 100644
--- a/Eigen/src/Core/Matrix.h
+++ b/Eigen/src/Core/Matrix.h
@@ -467,8 +467,10 @@
   * They follow the same pattern as above except that the scalar type suffix is replaced by a
   * template parameter, i.e.:
   *   - `MatrixSize<Type>` where `Size` can be \c 2,\c 3,\c 4 for fixed size square matrices or \c X for dynamic size.
-  *   - `MatrixXSize<Type>`and `MatrixSizeX<Type>` where `Size` can be \c 2,\c 3,\c 4 for hybrid dynamic/fixed matrices.
+  *   - `MatrixXSize<Type>` and `MatrixSizeX<Type>` where `Size` can be \c 2,\c 3,\c 4 for hybrid dynamic/fixed matrices.
   *   - `VectorSize<Type>` and `RowVectorSize<Type>` for column and row vectors.
+  * 
+  * With \cpp11, you can also use fully generic column and row vector types: `Vector<Type,Size>` and `RowVector<Type,Size>`.
   *
   * \sa class Matrix
   */
@@ -540,6 +542,16 @@
 EIGEN_MAKE_FIXED_TYPEDEFS(3)
 EIGEN_MAKE_FIXED_TYPEDEFS(4)
 
+/** \ingroup matrixtypedefs
+  * \brief \cpp11 */
+template <typename Type, int Size>
+using Vector = Matrix<Type, Size, 1>;
+
+/** \ingroup matrixtypedefs
+  * \brief \cpp11 */
+template <typename Type, int Size>
+using RowVector = Matrix<Type, 1, Size>;
+
 #undef EIGEN_MAKE_TYPEDEFS
 #undef EIGEN_MAKE_FIXED_TYPEDEFS
 
diff --git a/test/type_alias.cpp b/test/type_alias.cpp
index f9b0efc..9a6616c 100644
--- a/test/type_alias.cpp
+++ b/test/type_alias.cpp
@@ -29,7 +29,7 @@
   STATIC_CHECK((is_same<Vector2<float>,     Vector2f>::value));
   STATIC_CHECK((is_same<RowVectorX<int>,    RowVectorXi>::value));
   STATIC_CHECK((is_same<RowVector2<float>,  RowVector2f>::value));
-  
+
   STATIC_CHECK((is_same<ArrayXX<float>,     ArrayXXf>::value));
   STATIC_CHECK((is_same<Array33<int>,       Array33i>::value));
   STATIC_CHECK((is_same<Array2X<float>,     Array2Xf>::value));
@@ -37,6 +37,11 @@
   STATIC_CHECK((is_same<ArrayX<double>,     ArrayXd>::value));
   STATIC_CHECK((is_same<Array4<double>,     Array4d>::value));
 
+  STATIC_CHECK((is_same<Vector<float,3>,        Vector3f>::value));
+  STATIC_CHECK((is_same<Vector<int,Dynamic>,    VectorXi>::value));
+  STATIC_CHECK((is_same<RowVector<float,3>,     RowVector3f>::value));
+  STATIC_CHECK((is_same<RowVector<int,Dynamic>, RowVectorXi>::value));
+
 #else
   std::cerr << "WARNING: c++11 type aliases not tested.\n";
 #endif