QtCS2024 Error handling: Difference between revisions
Jump to navigation
Jump to search
(Created page with "==Session Summary== ==Session Owners== ==Notes== Category:QtCS2024") |
No edit summary |
||
Line 2: | Line 2: | ||
==Session Owners== | ==Session Owners== | ||
Volker Hilsheimer | |||
Note taker: Thiago | |||
==Notes== | ==Notes== | ||
Intro: we already have too many attempts at this, going back at least as far back as 2017. | |||
Volker's proposal: | |||
* use the C++17-compatible full implementation by Sy Brand at https://github.com/tartanllama/expected | |||
** Licence: CC0 (QtC legal needs to confirm it's ok to use even for commercial, but Thiago thinks it is [but he isn't a lawyer]) | |||
** Includes things that even most of Standard Library implementations don't yet | |||
* import into Qt | |||
* use it internally | |||
Should we use it in public API? | |||
* If we do, then we can't switch to <tt>std::expected</tt> (C++23) before at least Qt 7.0 | |||
* It becomes part of our ABI | |||
* Shouldn't be named <tt>q23::expected</tt> because it conveys the wrong message | |||
* Do we need to use it in public API? | |||
** No, we don't '''need''' it | |||
** But it's very useful for that; the type is designed for use in interface boundaries | |||
* Suggestion: | |||
** Use it internally ''first'' so we gain experience with its issues and how to use it | |||
** Then, later, make it public to use it | |||
Alternatives: | |||
* [https://www.boost.org/doc/libs/1%2079%200/libs/leaf/doc/html/index.html Boost LEAF] | |||
* [https://www.boost.org/doc/libs/1%2085%200/libs/outcome/doc/html/index.html Boost Outcome] | |||
[[Category:QtCS2024]] | [[Category:QtCS2024]] |
Revision as of 13:30, 5 September 2024
Session Summary
Session Owners
Volker Hilsheimer Note taker: Thiago
Notes
Intro: we already have too many attempts at this, going back at least as far back as 2017.
Volker's proposal:
- use the C++17-compatible full implementation by Sy Brand at https://github.com/tartanllama/expected
- Licence: CC0 (QtC legal needs to confirm it's ok to use even for commercial, but Thiago thinks it is [but he isn't a lawyer])
- Includes things that even most of Standard Library implementations don't yet
- import into Qt
- use it internally
Should we use it in public API?
- If we do, then we can't switch to std::expected (C++23) before at least Qt 7.0
- It becomes part of our ABI
- Shouldn't be named q23::expected because it conveys the wrong message
- Do we need to use it in public API?
- No, we don't need it
- But it's very useful for that; the type is designed for use in interface boundaries
- Suggestion:
- Use it internally first so we gain experience with its issues and how to use it
- Then, later, make it public to use it
Alternatives: