【发布时间】:2021-07-09 10:58:47
【问题描述】:
我正在尝试在声明函数时在函数参数和返回类型中使用带有模板的结构。
template <typename T>
struct my_struct {
T value;
};
my_struct<T> func(my_struct<T> input_1, my_struct<T> input_2);
当我尝试上面的代码时,我得到了
错误:“T”未在此范围内声明
但是,当使用具体的 data_type 声明时,它会编译。
my_struct<float> func(my_struct<float> input_1, my_struct<float> input_2);
这是否意味着,我必须为我期望的所有数据类型声明函数?显然,我误解了这里的概念。有人可以解释一下吗?
【问题讨论】:
-
对于问题2,
X不可推演,所以调用func<float>(t1, t2);。 -
一个问题一个问题,您可能已经问了另一个问题,而不是编辑该问题以包含额外的问题。
-
我回滚了您的编辑。你仍然可以访问你写的here 并将其复制到一个新的问题中。尽管正如 Jarod42 所说,您要么需要指定模板参数,要么必须从函数参数中推导出来
标签: c++