diff options
author | MÃ¥rten Kongstad <marten.kongstad@sony.com> | 2018-11-19 14:14:37 +0100 |
---|---|---|
committer | Todd Kennedy <toddke@google.com> | 2018-12-17 15:45:20 -0800 |
commit | 0f76311c1db25cac791a56ef9a3da66f6cacecbb (patch) | |
tree | 3539550edc6e6c90cf294a5a8d24bb3feab64f84 /tests/DynamicCodeLoggerIntegrationTests/src/cpp/test_executable.cpp | |
parent | b57794af2875e234f253df0196c583560476cf06 (diff) |
idmap2: replace std::pair<bool, T> with Result<T>
Introduce a new type Result<T> to indicate if an operation succeeded or
not, and if it did, to hold the return value of the operation. This is
the same as how std::pair<bool, T> is already used in the codebase, so
replace all instances with Result<T> to improve clarity.
Result<T> is simply an alias for std::optional<T>. The difference is
semantic: use Result<T> as the return value for functions that can fail,
use std::optional<T> when values are truly optional. This is modelled
after Rust's std::result and std::option.
A future change may graduate Result<T> to a proper class which can hold
additional details on why an operation failed, such as a string or an
error code. As a special case, continue to use std::unique_ptr<T>
instead of Result<std::unique_ptr<T>> for now: the latter would increase
code complexity without added benefit.
Test: make idmap2_tests
Change-Id: I2a8355107ed2b6485409e5e655a84cf1e20b9911
Diffstat (limited to 'tests/DynamicCodeLoggerIntegrationTests/src/cpp/test_executable.cpp')
0 files changed, 0 insertions, 0 deletions