Как передать аргументы функции «неупорядоченным» способом (относительно объявления функции)? - PullRequest
0 голосов
/ 10 февраля 2019

Я не очень хорошо знаю, как сказать или объяснить это, я думаю, что это простой вопрос, но я просто не могу найти ответ в Интернете.

Я хочу что-то вроде "прыгнуть""некоторые аргументы в моей (C ++) функции.Пример ниже:

void func(int a=1, int b=2, int c=3, int d=5) {
    // Do stuff
}

int main(void)
{
    func();
}

Как передать, например, что-то, что установило бы d в 4, используя аргументы других переменных по умолчанию (только передавая аргумент для d)?Что-то вроде:

void func(int a=1, int b=2, int c=3, int d=5) {
    // Do stuff
}

int main(void)
{
    func(d=4);
}

Я попробовал приведенный выше код, и он не работает должным образом, но я думаю, вы поняли, как мне установить переменную на что-то, не проходя через все остальные?

Пример того, чего я не хочу:

void func(int a=1, int b=2, int c=3, int d=5) {
    // Do stuff
}

int main(void)
{
    func(1, 2, 3, 4);
}

Есть предложения / ответы?Я помню, что раньше делал что-то подобное в Python, но я не могу понять, как это сделать в C ++.

...