【发布时间】:2011-11-24 11:06:40
【问题描述】:
C++0x 有两个预定义的error_category 对象:generic_category() 和system_category()。据我目前了解,system_category() 应该用于操作系统返回的错误,generic_category() 应该用于std::errc 中找到的通用值,它们对应于errno 值。
但是,在类似 Unix 的系统上应该怎么做,其中errno 值是操作系统返回的错误?我应该使用system_category()(这在非类Unix系统上是错误的,需要#ifdef),还是应该使用generic_category()(对于非标准errno在类Unix系统上是错误的@值)?
【问题讨论】:
-
阅读完答案后,我仍然不确定该使用什么。
-
@robert:
是一个复杂的、过度设计的混乱。如何正确使用它?没有人知道...(请参阅此线程)。
标签: unix error-handling c++11 errno system-error