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值是错误的)?