Есть ли способ использовать фигурные скобки в качестве параметров функции без включения какого-либо другого файла заголовка в C ++? - PullRequest
0 голосов
/ 04 августа 2020

Когда я пытаюсь отправить что-то вроде {1,2,3,4,5} в качестве параметра функции, я должен использовать std::vector или std::initializer_list или контейнер STL. Я искал этот topi c, все использовали initializer_lis или контейнеры STL в качестве параметров функции для отправки аргументов фигурных скобок. Я не смог найти другого способа сделать это.

Есть ли другой способ отправки параметров в виде фигурных скобок без добавления файла заголовка?

1 Ответ

3 голосов
/ 04 августа 2020

Вы можете использовать инициализацию списка с массивами, для которых не нужны заголовки. Например:

template <int N>
int sum(int const (& array)[N]) {
    int sum = 0;
    for (int x : array) {
        sum += x;
    }
    return sum;
}

int main() {
    return sum({1,2,3});
}

Недостатком массивов по сравнению с std::vector является то, что размер массива должен быть фиксированным или передаваться в качестве аргумента шаблона.

...