Полный текст

std::expected в C++23: гайд по миграции с исключений на функциональный error handlingБерём функцию, которая грузит пользователя, проверяет права и собирает DTO. На исключениях она пишется в три строки и выглядит компактнее, чем цепочка на std::expected. Вот только какие типы исключений способна бросить эта цепочка вызовов, видно не в сигнатуре, а в документации, и компилятор промолчит, когда в глубине добавится ещё один.С std::expected из C++23 набор возможных ошибок стоит прямо в возвращаемом типе, и его проверяют статически на компиляции. Гайд ведёт от базового API к monadic-цепочкам через and_then и transform_error, показывает конвертацию ошибок между слоями и честно перечисляет места, где переходить как раз не стоит.