首页 > 解决方案 > 尝试在结构中接收模板并在 std::vector 上使用它

问题描述

我正在尝试为测试创建一个树类,但我得到:“错误:'模板类 std::vector”的模板参数列表中参数 1 的类型/值不匹配。

template <typename T>
struct a {
T data;
void ReceiveData(T T_data) {
    data = T_data;
}
};
struct b {
std::vector<a> b_data;//Error here
};

标签: c++c++11templatesvector

解决方案


您需要指定模板类型a

template<typename T> struct a 
{
   T data;
   void ReceiveData(T T_data) 
   {
      data = T_data;
   }
};

template<typename T> struct b 
{
   std::vector<a<T>> b_data; //compiles now
   //          ^^^^
};

请注意,a单独不是一个类型,它是一个模板。住在神螺栓上


推荐阅读