Рассмотрим следующую функцию, которая принимает ссылку на массив размером 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])
не работает
Задача ещё не решена.
Других решений пока нет …