По существу то же, что и this question, но для C++.Могу ли я условно выбрать, какую переменную присваивать?
Самый простой способ сделать это было бы:
if (condition) {
a = f(x);
} else {
b = f(x);
}
Хотя это отвечает моим потребностям, он всегда давало мне покоя, что я должен был повторить набрав п (х) в два раза, не говоря уже о расширении код из-за большого количества строк, когда будет выполняться только одна строка. Что делать, если у меня есть большой выбор переменных назначения на выбор?
switch(condition variable) {
case 1:
var1 = f(x);
break;
case 2:
var2 = f(x);
break;
...
case y:
vary = f(x);
break;
}
Это выглядит очень нелогично для меня.
Есть ли что-нибудь в C++, что по существу позволяет мне сделать следующее?
do-something-that-returns-a-lvalue = f(x);
Простите меня, если это не называется lvalue, я все еще относительно новичок в C++. Но вы, ребята, понимаете, что я имею в виду - переменную назначения для присвоения значения.
Вы можете, безусловно, написать функцию, возвращающую ссылку и присваиваемую ей. –
Как это сделать? Каков тип возврата функции, которая должна выглядеть? – thegreatjedi
Хотя это не прямой ответ на вопрос, 'fval = f (x); если (условие) a = fval; else b = fval' гораздо более разборчиво для меня, но все еще DRY. – Amadan