C++0x имеет два предопределенных объекта error_category
: generic_category()
и system_category()
. Из того, что я понял до сих пор, system_category()
следует использовать для ошибок, возвращаемых операционной системой, а generic_category()
следует использовать для общих значений, найденных в std::errc
, которые соответствуют значениям errno
.
Однако что делать в Unix-подобных системах, где errno
значений являются ошибками, возвращаемыми операционной системой? Должен ли я использовать system_category()
(что было бы неправильно в не-Unix-подобных системах, требующих #ifdef
), или я должен использовать generic_category()
(что было бы неправильно в Unix-подобных системах для нестандартных значений errno
)?