Здравствуйте, Marty, Вы писали:
TB>>Немного более утомительно, чем
TB>>TB>>auto Result = foo()?;
TB>>
M>А что тут вообще происходит?
Тут происходит ровно то, что я написал в комментарии выше. Проверка наличия ошибки, немедленный возврат ошибки при её наличии, или вернуть результат если ошибки нет.
Кстати, а где в твоём примере разные коды ошибок? Где немедленный возврат из функции в случае ошибки? Больше похоже на Optional.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте