Add bn::base::expected, a backport of C++23's std::expected - #8546
Open
bdash wants to merge 1 commit into
Open
Conversation
`bn::base::expected` provides a way to represent either of two values: an expected value of type `T` or an unexpected value of type `E`. This is commonly used as the return type of a function that can fail, where `T` will hold the return value on success and `E` will hold the error on failure. Most functionality of `std::expected` is implemented. The header lists the aspects that were skipped for now.
bdash
added this pull request to stack #8548
September 10, 2026 17:35
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
bn::base::expectedprovides a way to represent either of two values: an expected value of typeTor an unexpected value of typeE. This is commonly used as the return type of a function that can fail, whereTwill hold the return value on success andEwill hold the error on failure.Most functionality of
std::expectedis implemented. The header lists the aspects that were skipped for now.Unit tests are on the internal branch of the same name.