专门化模板内部的模板别名



我有一个矩阵类,如下所示。

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别名定义。

最新更新