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
значения)?