Должен ли я использовать system_category или generic_category для errno в Unix?
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
ценности)?