1

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])不起作用。

4

0 回答 0