gpt4 book ai didi

c++ - 在没有提供模板的情况下调用模板函数?

转载 作者:行者123 更新时间:2023-11-27 23:01:13 24 4
gpt4 key购买 nike

我有这个

#include "Division_Euclidean_space.h"

float find_diameter_exact(const int N, const int D,
const std::vector<float>& v) {
d = squared_Eucl_distance(v, offset, offset + D, i * D + D);
...
}

我实际上计划制作一个模板化方法,因为我的 vector 将支持任何数字数据类型。

因此,在包含的头文件中我有:

template<typename T>
T squared_Eucl_distance(const std::vector<T> &p, size_t start1,
size_t end1, size_t start2) {
...
}

我不应该收到一条错误消息,说我没有为 squared_Eucl_distance() 提供 T


附言

搞笑相关pic .

最佳答案

Template type deduction不是一件“容易”的事情,但在你的情况下这很容易:当你通过 std::vector<something> , 编译器将从 std::vector<T> 推导出来那T === something

你的函数被实例化为

something squared_Eucl_distance(const std::vector<something> &p, size_t start1,
size_t end1, size_t start2)

无论something是。

如果您将 std::vector 以外的参数作为第一个参数传递,您将收到错误消息

关于c++ - 在没有提供模板的情况下调用模板函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27461502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com