Сообщение Re[3]: Аналог "discarding _" для С++ от 30.06.2025 6:53
Изменено 30.06.2025 7:01 kov_serg
Re[3]: Аналог "discarding _" для С++
Здравствуйте, Went, Вы писали:
W>Аналогично, не понимаю при чем тут это. У меня задача — автоматизированная трансляция C# кода в С++. Хочу найти оптимальную замену "discarding _". Другими словами, во что транслировать такое:
если есть foo(out var _); то добавить определение void foo(void);
или сделать костыль вида

W>Аналогично, не понимаю при чем тут это. У меня задача — автоматизированная трансляция C# кода в С++. Хочу найти оптимальную замену "discarding _". Другими словами, во что транслировать такое:
void foo(out int x) { x = 1; }
..
foo(out var _);foo(/*что сюда написать? чтобы универсально и портабельно?*/);если есть foo(out var _); то добавить определение void foo(void);
void foo(int& x) { x=1; }
void foo(void) { int x; foo(x); }
...
foo();или сделать костыль вида
template<class T>void call(void (*fn)(T&)) { T t; fn(t); }
...
call( foo );будет напоминить fortran Re[3]: Аналог "discarding _" для С++
Здравствуйте, Went, Вы писали:
W>Аналогично, не понимаю при чем тут это. У меня задача — автоматизированная трансляция C# кода в С++. Хочу найти оптимальную замену "discarding _". Другими словами, во что транслировать такое:
если есть foo(out var _); то добавить определение void foo(void);
или если не хочется вводить новые сигнатуры, воспользоваться анонимными функциями
или сделать костыль вида

W>Аналогично, не понимаю при чем тут это. У меня задача — автоматизированная трансляция C# кода в С++. Хочу найти оптимальную замену "discarding _". Другими словами, во что транслировать такое:
void foo(out int x) { x = 1; }
..
foo(out var _);foo(/*что сюда написать? чтобы универсально и портабельно?*/);если есть foo(out var _); то добавить определение void foo(void);
void foo(int& x) { x=1; }
void foo(void) { int x; foo(x); }
...
foo();или если не хочется вводить новые сигнатуры, воспользоваться анонимными функциями
([&]{ int x; foo(x); }());или сделать костыль вида
template<class T>void call(void (*fn)(T&)) { T t; fn(t); }
...
call( foo );будет напоминить fortran