【发布时间】:2018-10-25 06:52:09
【问题描述】:
我对以下代码 sn-p 有以下担忧:
template<std::size_t Dim, std::size_t N,
typename RangeType1, typename RangeType2>
void multilinear_interp(
const RangeType1 (&coordsFrom)[Dim],
const std::array<RangeType2, N>& field)
{
// do something
}
int main()
{
std::vector<double> x{}, y{};
std::vector<float> f0{}, f1{};
multilinear_interp<2, 2>({x, y}, {f0, f1});
}
看起来编译器可以推断 RangeType1,但无法推断 RangeType2,编译失败。是否有可能在不明确指定 multiliner_interp 的所有模板参数的情况下使用 std::array ?如果不是,那么 const T (&)[Dim] w.r.t std::array 有什么特别之处可以在上述上下文中推导出来?
提前谢谢你。
【问题讨论】:
-
您得到的确切错误是什么?请将编译器的完整和完整(包括可能的信息注释)输出复制粘贴(作为文本)到问题正文中。
-
错误:没有匹配函数调用 'multilinear_interp(
, )' multilinear_interp({x , y}, {f0, f1});