Re: What is the correct behaviour?
* James Kanze:
Alf P. Steinbach wrote:
But surely it never was the intention that a C++ standard library
stream, providing strong typing for novices, should successfully produce
ULONG_MAX+1-432 for input "-432"?
If it was then the streams are IMO even more than triple-ungood, not
just inadvertently complex, cryptic, error-prone, limited, and
inefficient, but by design delivering unusable, unexpected results...
I see you've never used C I/O. Speak about cryptic, error-prone
and limited.
When I think of C i/o I think of 'creat', the biggest mistake in the
design of original Unix (namely, "I'd spell creat with an e"), and the
slow-reader program for Deep Blue. Something bad happened during
standardization of C: the standardized functionality isn't the de facto
real & useful one. And something bad happened during standardization of
C++, but since C only allows you to inadvertently shoot yourself in the
foot, while C++ allows you to inadvertently level a whole city block,
that something bad that happened for C++ was orders of magnitude worse.
In medium-short, it seems to me that the Wanton Abstractionists and
Generalizationists won, for languages meant for serious systems-level
programming where one needs control, with the result that the
standardized i/o functionality for C is handicapped (thus, Posix) and
for C++ lobotomized while in either case not being any more portable,
and actually just as system-dependent as it would have been with a more
complete, less over-abstracted and actually useful toolset.
Just my humble opinion, of course.
[snip]
Of course, a perhaps even simpler solution would be to modify
stage 2 in ?22.2.2.1.2/3 to remove + and - from the list of
atoms if the target type is unsigned. This would at least
eliminate the ambiguity concerning negative unsigned values.
That sounds like a kludge, chewing-gum and elastic bands applied to stop
the rattling in one special case, instead of a general solution.
I remember when I once jokingly remarked -- was it here? -- that we
ditch the whole standard library except the original STL parts (which
weren't even an original basis but added in quite late, IIRC).
Tellingly, and a revelation for me, most of the first responses took
that seriously instead of as a Good Joke, arguing seriously for and
against the proposition. But then, as Piet Hein remarked, one who takes
a joke only as a joke, and serious stuff only seriously, has actually
understood equally little of both. Of course, in Danish it rhymed! ;-)
--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]