Peter Memishian writes:
> 
>  > I think there's a bug in <sys/types.h> in that B_TRUE and B_FALSE
>  > disappear from the namespace if you request XOPEN_ or POSIX compliance
>  > with extensions via defines such as:
>  > 
>  >    -D_XOPEN_SOURCE=500 -D__EXTENSIONS__
> 
> I agree this seems bogus.  I've seen folks workaround it by #defining
> B_TRUE to _B_TRUE and (e.g., in Makefiles).

It seems bogus, but if I recall correctly, the standards conformance
gurus say that we're not allowed to walk into the user's name space in
this way: those symbols are defined by the standards, so they must not
exist.  If you don't like that, then don't compile in a standards-
conformant environment.

The other (more common and just as simple) solution is to use _B_TRUE
and _B_FALSE in your source code.  It's not that much harder to type,
and it keeps you out of the way of the standards people.

The real breakage here, I think, is that ancillary data is
inaccessible from native (Solaris; not standards-compliant) sockets.
That's *really* bogus.

-- 
James Carlson, Solaris Networking              <[EMAIL PROTECTED]>
Sun Microsystems / 35 Network Drive        71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to