В этой статье по определению собственных расширений до ::std::error_code
автор рекомендует этот код:
namespace std
{
template <>
struct is_error_code_enum<http_error>
: public true_type {};
}
чтобы включить преобразования из ваших собственных констант ошибок в системный тип ошибки.
Это разумно? Это всегда заставляет меня нервничать, чтобы помещать вещи в пространство имен std
. Есть ли лучший способ достижения цели? В противном случае, есть ли часть стандарта, в котором говорится, что это всегда нормально делать?