Re[3]: Аналог "discarding _" для С++
От: kov_serg Россия  
Дата: 30.06.25 06:53
Оценка:
Здравствуйте, Went, Вы писали:

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
Отредактировано 30.06.2025 7:01 kov_serg . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.