![](/img/trans.png)
[英]C++ template parameter deduction for std::array with non size_t integer
[英]Use of std::size_t in array function template header (C++)
在这段代码中:
#include <cstddef>
#include <array>
#include <iostream>
// here
template <typename T, std::size_t size>
void printArray(const std::array<T, size>& myArray) {
for (auto element : myArray)
std::cout << element << ' ';
std::cout << '\n';
}
int main() {
std::array myArray1{ 9.0, 7.2, 5.4, 3.6, 1.8 };
printArray(myArray1);
// shouldn't this line be
printArray<double, 5>(myArray1)
return 0;
}
我了解模板和函数的工作原理,但我不明白第 16 行将std::size_t
传入的位置。我知道模板会推导出类型。 它也会自动传入数组大小吗?
我知道模板会推断类型。 它也会自动传入数组大小吗?
是的,模板非类型参数size
的值将从函数参数的类型推导出来,与推导出模板类型参数T
相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.