在模板中特化模板别名

Specializing a Template Alias Inside a Template

我有一个矩阵class如下。

template <typename T, std::size_t M, std::size_t N> 
class Matrix
{
  std::array<std::array<T, N>, M> data_;
};

我想在此矩阵中创建一个行别名,以便于类似于

template <typename T, std::size_t M, std::size_t N> 
class Matrix
{
  template<>
  using row = std::array<T, N>;

  std::array<row, M> data_;
};

我的编译器告诉我这个别名仍然是非专业化的。我该如何实现?

这为我编译:

#include <array>

template <typename T, std::size_t M, std::size_t N>
class Matrix
{
    using row = std::array<T, N>;

    std::array<row, M> data_;
};

这不是真正的专业化,只是一个普通的 using 别名定义。