Header files with enums instead of defines?

M. Warner Losh imp at bsdimp.com
Wed Dec 22 10:51:57 PST 2004


In message: <41C9C015.7050706 at freebsd.org>
            Scott Long <scottl at freebsd.org> writes:
: M. Warner Losh wrote:
: > In order to gain the benefits of the enums, errno would need to be an
: > enum errno_t or some such.  This breaks C++ code that sets errno = 0,
: > since you can't assign integers to errno values.
: > 
: > So even if you retained EBOGUS or whatever, this wouldn't work with
: > C++.  errno has to be an int to work there.
: > 
: > Warner
: 
: I think you might have missed that nothing was actually being declared
: with the errno_t type, but rather the type was used as a cast for gdb.
: It's a neat trick, but still a little cumbersome unless gdb was taught
: about it or given some clever macros.

Or better yet, just use the array of error values already compiled
into the programs that strerror() formats for you (you don't need to
use strerror, just sys_errlist[]).

Warner


More information about the freebsd-arch mailing list