LINUX.ORG.RU

История изменений

Исправление 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;
};