Запретить указание каждого целого значения как без знака в массиве-инициализаторе

Рассмотрим следующую функцию, которая принимает ссылку на массив размером 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]) не работает

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …