在模板中特化模板别名
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
别名定义。
我有一个矩阵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
别名定义。