N
考虑以下函数,它引用在编译时推导出的大小数组:
template <size_t N>
void array_consumer(unsigned const (&source)[N]) {
// ...
}
我想用这样的数组初始化器来调用它:
array_consumer({1u, 2u, 3u, 4u});
这可行,但我不想u
在每个值之后指定(实际数组可能更长)。我可以对函数签名或在调用站点做些什么来避免这种情况吗?
请注意,我需要数组实际上是内部的无符号类型array_consumer
(而且我真的不想制作副本),因此将签名更改为int const (&source)[N])
不起作用。