this post was submitted on 11 Nov 2023
20 points (88.5% liked)

C++

1763 readers
1 users here now

The center for all discussion and news regarding C++.

Rules

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[โ€“] mercator_rejection@programming.dev 3 points 1 year ago* (last edited 1 year ago) (1 children)

The main problem with std:: expected is lack of language support. In theory, it works well as an alternative to exceptions, with nice self contained monadic statements. In practice, it is actually much worse than what the article suggests.

main issues -

  1. as I said, no language level support. You eventually end up with messy code somewhere because the library code can't simplify things enough. You end up with if checks strew about that really oaught to be a language paradigm.

  2. there is not a lot of code making use of it, so at the boundaries of your code you have to make adaptations to and from std:: expected from whatever some library chose to use.

  3. adapting your existing codebase is basically impossible. Perhaps if you are starting a new project you can do it, but it is different enough that all your existing code must be updated to accommodate the new paradigm and it's just an awful experience doing the work and being in a mix of error handling.

[โ€“] cschreib@programming.dev 2 points 1 year ago

I guess you mean std::expected, not std::exception?