Re[5]: Передача аргументов в функцию - позиционные vs именов
От: rg45 СССР  
Дата: 21.03.25 19:01
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Для C++ вроде и все есть, но все жутко не удобно — ведь еще нужно писать обвязку.


Дарю лайфхак: Designated initializers

http://coliru.stacked-crooked.com/a/3c18a1b78cced9ad

struct FooParams {int a; double b = 3.14; int c; int e = 42; int f; int g; int h;};

void foo(FooParams _) {/* . . . */}

int main()
{
    foo({.a = 123, .e = 456, .h = 789});
}


P.S. Кстати говоря, такой приём даёт ещё одно преимущество — определенность в порядке инициализации параметров — строго слева направо. Тогда как порядок инициализации обычных фактических параметров функций не регламентирован.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 21.03.2025 19:34 rg45 . Предыдущая версия . Еще …
Отредактировано 21.03.2025 19:19 rg45 . Предыдущая версия .
Отредактировано 21.03.2025 19:15 rg45 . Предыдущая версия .
Отредактировано 21.03.2025 19:10 rg45 . Предыдущая версия .
Отредактировано 21.03.2025 19:05 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.