История изменений
Исправление wandrien, (текущая версия) :
Желание сделать кратко и ёмко понятно. Но ты превращаешь систему типов в винегрет из неявных преобразований, да еще и в которой при этом тип рекурсивно содержит сам себя, и в одном месте означает «тут мы играем», а в другом - «тут рыбу заворачивали».
Если хочется краткости, нужно придумать синтаксическую конструкцию, которая это завернёт. Например так:
int c = checked(a + b) else {
return false;
};
Такого пока нет.
В современном C++ ты можешь делать так:
auto [c, ov] = add_with_overflow(a, b);
Исходная версия wandrien, :
Желание сделать кратко и ёмко понятно. Но ты превращаешь систему типов в винегрет из неявных преобразований, да еще и в которой при этом тип рекурсивно содержит сам себя, и в одном месте означает «тут мы играем», а в другом - «тут рыбу заворачивали».
Если хочется краткости, нужно придумать синтаксическую конструкцию, которая это завернёт. Например так:
int c = checked(a + b) else {
return false;
};