title: Using std::error_code with non-integer values
body: <p>I'm writing a library and want to return error codes whenever an error is returned by a remote system. The problem is that these are identified by strings, eg, "0A01" and also contain a message, and error code requires an integer as value.</p>
  
  <p>What is the best way to implement an error code, with all the functionality that <code>std::error_code</code> provides but that uses strings as the value? How do I add an external error string to the <code>std::error_code</code> or <code>std::error_category</code>?</p>