Здравствуйте, 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