namespace art { // Result of an attempt to process the command line arguments. If fails, specifies // the specific error code and an error message. // Use the value-carrying CmdlineParseResult<T> to get an additional value out in a success case. struct CmdlineResult { enum Status {
kSuccess, // Not treated as an error but do not continue i.e. return status 0.
kHelp, // Error codes:
kFailure,
kInvalid,
kUnknown,
};
// Short-hand for checking if the result was successful. operatorbool() const { return IsSuccess();
}
// Check if the operation has succeeded. bool IsSuccess() const { return status_ == kSuccess; } // Check if the operation was not a success. bool IsError() const { return status_ != kSuccess; } // Get the specific status, regardless of whether it's failure or success.
Status GetStatus() const { return status_; }
// Get the error message, *must* only be called for error status results. const std::string& GetMessage() const { assert(IsError()); return message_; }
// Constructor any status. No message. explicit CmdlineResult(Status status) : status_(status) {}
// Constructor with an error status, copying the message.
CmdlineResult(Status status, const std::string& message)
: status_(status), message_(message) {
assert(status != kSuccess);
}
// Constructor with an error status, taking over the message.
CmdlineResult(Status status, std::string&& message)
: status_(status), message_(message) {
assert(status != kSuccess);
}
// Make sure copying exists
CmdlineResult(const CmdlineResult&) = default; // Make sure moving is cheap
CmdlineResult(CmdlineResult&&) = default;
private: const Status status_; const std::string message_;
};
// TODO: code-generate this staticinline std::ostream& operator<<(std::ostream& stream, CmdlineResult::Status status) { switch (status) { case CmdlineResult::kSuccess:
stream << "kSuccess"; break; case CmdlineResult::kHelp:
stream << "kHelp"; break; case CmdlineResult::kFailure:
stream << "kFailure"; break; case CmdlineResult::kInvalid:
stream << "kInvalid"; break; case CmdlineResult::kUnknown:
stream << "kUnknown"; break;
} return stream;
}
} // namespace art
#endif// ART_CMDLINE_CMDLINE_RESULT_H_
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.