Я часто использую общий
if (Value * value = getValue())
{
// do something with value
}
else
{
// handle lack of value
}
Теперь я также часто делаю
QString error = someFunctionReturningAnErrorString(arg);
if (!error.isEmpty())
{
// handle the error
}
// empty error means: no error
Что все отлично, но я бы хотел, чтобы переменная error
была привязана к if
-блоку. Есть ли приятная идиома для этого? Очевидно, я могу просто обернуть всю часть внутри другого блока.
Это, очевидно, не работает:
if(QString error = someFunctionReturningAnErrorString(arg), !error.isEmpty())
{
// handle the error
}
// empty error means: no error
И, к сожалению (но по уважительным причинам) QString
не может быть преобразован в bool, так что это тоже не работает:
if(QString error = someFunctionReturningAnErrorString(arg))
{
// handle the error
}
// empty error means: no error
Любые предложения?