67. Error Codes Enum

​​#include <iostream>
#include <cstdint>
using namespace std;

enum class ErrorCode : uint8_t { None, Timeout, Overflow, Invalid };

const char* toString(ErrorCode e) {
    switch (e) {
        case ErrorCode::None:     return "None";
        case ErrorCode::Timeout:  return "Timeout";
        case ErrorCode::Overflow: return "Overflow";
        case ErrorCode::Invalid:  return "Invalid";
    }
    return "Invalid";
}

int main() {
    int x;
    cin >> x;
    ErrorCode e = static_cast<ErrorCode>(x);
    cout << toString(e);
    return 0;
}

 

 

Solution Details

  • The enum ErrorCode defines standard error identifiers: None, Timeout, Overflow, Invalid.
     
  • The integer input is cast to ErrorCode.
     
  • The function toString(ErrorCode) maps each enum to its string.
     
  • Using a strongly typed enum (enum class) avoids mixing up error codes with unrelated integers.

     

Significance for Embedded Developers

  • Embedded drivers often return error codes to indicate status.
     
  • Using enum class enforces type safety — preventing accidental use of unrelated integers.
     
  • Centralizing error strings makes debugging consistent across firmware.

     
Loading...

Input

0

Expected Output

None