Re: C++ standard
Bo Persson wrote:
"Walter Bright" <walter@digitalmars-nospamm.com> skrev i meddelandet
news:n6qdneY06LtfOzPZnZ2dnUVZ_sydnZ2d@comcast.com...
I think the C++ community would be well served by statements
in the Standard along the lines of "if it's a 32 bit CPU,
then int shall be 32 bits, etc." That would bless current
existing practice into something that could be relied upon.
That's what the int32_t typedef does for C99. Good if
available, but non-portable if the machine happens to be
36-bit.
I think part of Walter's point was that a lot of C++
applications don't have to be that portable. For a lot of
applications, once you support Windows, Mac, Linux on a PC and
the five mainstream Unix, you've covered well over 99% of your
potential market anyway. And all of these are either 32 bit 2's
complement, or 64 bit 2's complement, but with int a 32 bit
type.
In practice, I don't think any standardization is necessary for
his requirements. The fact is that if it is a 32 bit 2's
complement machine, that's what int will be. The standard may
allow exotic architectures, but it certainly doesn't require an
implementation to go out of its way just to be exotic.
Add to that the possiblity of compile time testing by means of:
#include <stdint.h>
#ifndef INT32_MAX
#error Not supported
#endif
which is present in C99, and will almost certainly be present in
the next version of C++, and I think you've got the best of both
worlds.
--
James Kanze kanze.james@neuf.fr
Conseils en informatique orient?e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S?mard, 78210 St.-Cyr-l'?cole, France +33 (0)1 30 23 00 34
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]