Как передать аргументы функции "неупорядоченным" способом (относительно объявления функции)?

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

Я хочу "перебросить" некоторые аргументы в моей (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++.

0 ответов

Другие вопросы по тегам