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: