Chia-I Wu <[email protected]> writes:
> On Mon, Jul 27, 2009 at 10:07:37AM -0600, tom fogal wrote:
> > > /**
> > > + * Get standard integer types
> > > + */
> > > +#if defined(_MSC_VER)
> > > + typedef __int8 int8_t;
> > > + typedef unsigned __int8 uint8_t;
> > [snip]
> > > +#else
> > > +# include <stdint.h>
> > > +#endif
> > I think this would make more sense predicated on __STDC_VERSION__
> > compared to 199901L (i.e. c99 path and non-c99 path).
>
> This is the part of C that I never know how to do right, and therefore I
> stole it from mesa/main/compiler.h.
>
> I read it as
>
> #if defined(_MSC_VER)
> /* some typedefs */
> #elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
> #include <stdint.h>
> #else
> /* no better way, hope the best */
> #include <stdint.h>
> #endif
Hrm. I would argue that both places should read something more like:
#if C99 is supported
# include <stdint.h>
#else
/* some typedefs */
#endif
Or perhaps something more robust / maintained by a third party entity
(like the `msinttypes' project you mention; boost has a similar header
which probably isn't C++-specific; I'm sure there's others out there)
could be integrated.
Anyway, presumably the above #if sequence would "just work" when
(if?) MS finally decides to support enough C99 to update that define.
-tom
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev