c++ - 尝试在结构中接收模板并将其用于 std::vector

标签 c++ c++11 templates 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
};

最佳答案

需要指定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 不是类型,而是模板。 直播Godbolt

关于c++ - 尝试在结构中接收模板并将其用于 std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58581427/

相关文章:

c++ - Variadic 函数 - 确定返回类型

c++ - 为模板类重载友元运算符<<

c++ - 生成代码以实例化具有不同参数的函数模板

c++ - 我在解决简单的参数相关查找/模板类型推断问题时遇到问题

c++ - 最简单的跨平台小部件工具包?

c++ - 构造函数上的模板和隐式转换预防

c++ - 如何传递 unique_ptr<T> 代替原始 *output* 指针参数?

c++ - 覆盖 [[noreturn]] 虚函数

c++ - 类型转换成员函数指针

c++ - modf 返回 1 作为小数 :