C++ - 模板 + 'using' 子句 - 参数不匹配错误
C++ - Template + 'using' clause - mismatch argument error
我正在尝试使用一个模板和两个 typedef,但我知道唯一的方法是插入一个像这样的 'using' 子句:
template<typename T>
using Car = std::pair<T, T>;
using SparseMatrix = std::vector< Car >;
问题是 gcc 给我以下错误:
error: type/value mismatch at argument 1 in template parameter list for ‘template<class _Tp, class _Alloc> class std::vector’
我认为问题在于 Car 不是类型,因为 'using' 子句。我该如何解决?
Car
是别名模板,因此您需要在 SparseMatrix
中获取模板参数并将其转发到:
template <typename T>
using SparseMatrix = std::vector<Car<T>>;
我正在尝试使用一个模板和两个 typedef,但我知道唯一的方法是插入一个像这样的 'using' 子句:
template<typename T>
using Car = std::pair<T, T>;
using SparseMatrix = std::vector< Car >;
问题是 gcc 给我以下错误:
error: type/value mismatch at argument 1 in template parameter list for ‘template<class _Tp, class _Alloc> class std::vector’
我认为问题在于 Car 不是类型,因为 'using' 子句。我该如何解决?
Car
是别名模板,因此您需要在 SparseMatrix
中获取模板参数并将其转发到:
template <typename T>
using SparseMatrix = std::vector<Car<T>>;