У меня есть следующие опасения по поводу следующего фрагмента кода:
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, и компиляция не удалась.Есть ли возможность использовать std :: array без явного указания всех параметров шаблона multiliner_interp?Если нет, то что особенного в const T (&) [Dim] относительно std :: array, что его можно вывести в вышеуказанном контексте?
Заранее спасибо.