Как я могу назначить ссылочную переменную на основе оператора if?
Например, следующий пример не работает, потому что «поменьше» не имеет области действия вне оператора if.
int x = 1;
int y = 2;
if(x < y)
{
int & smaller = x;
}
else if (x > y)
{
int & smaller = y;
}
/* error: smaller undefined */
Однако следующий пример также не работает, потому что ссылки должны быть немедленно назначены объектам.
int x = 1;
int y = 2;
int & smaller; /* error: requires an initializer */
if(x < y)
{
smaller = x;
}
else if (x > y)
{
smaller = y;
}
Я мог бы добиться назначения ссылки с помощью оператора ternary-if, но чтоесли я не смогу это использовать?