Check for ignored StatusOr results
Test: m
Change-Id: I2b4c31b53b81417ddb7dc8d9b56da3f77ca033c8
diff --git a/libnetdutils/include/netdutils/StatusOr.h b/libnetdutils/include/netdutils/StatusOr.h
index ef4ee35..628421d 100644
--- a/libnetdutils/include/netdutils/StatusOr.h
+++ b/libnetdutils/include/netdutils/StatusOr.h
@@ -26,7 +26,7 @@
// Wrapper around a combination of Status and application value type.
// T may be any copyable or movable type.
template <typename T>
-class StatusOr {
+class [[nodiscard]] StatusOr {
public:
StatusOr() = default;
StatusOr(const Status status) : mStatus(status) { assert(!isOk(status)); }
@@ -55,7 +55,10 @@
// Return status assigned in constructor
const Status status() const { return mStatus; }
- // Implict cast to Status
+ // Explicitly ignores the Status without triggering [[nodiscard]] errors.
+ void ignoreError() const {}
+
+ // Implicit cast to Status.
operator Status() const { return status(); }
private: