Re: argv[] comparison
* *PaN!*:
"Alf P. Steinbach" <alfps@start.no> wrote in message
news:5biogpF2te4b4U1@mid.individual.net...
Well yes, right on. If I weren't so lazy I'd add it as a project template
in Visual Studio, or have it as a file I could copy. But I just type it
in manucally whenever I need a small tool for something (perhaps I'm not
lazy enough -- this bears thinking about!). Thought I should share it,
and I couldn't imagine that it would generate any debate. And as
mentioned, I think similar code is given in Accelerated C++, presumably
for the same reason: a simple, reusable skeleton for a small toy program
that needs to handle main arguments.
Just a question about your code (which I appreciated as a good example).
Why did you use:
(1)
arguments.size() > 1
|| throwX( "usage: myprog ARG1" );
and not a plain if as in
(2)
if (aruments.size() <= 1) {
throwX( "usage: myprog ARG1" );
}
I've never seen this use, but of course I can understand it (even if I
haven't found it very readable at first sight).
Is (1) written that way because you wanted the condition (arguments.size() >
1) to have the form of a precondition?
Yes, and it's shorter, and it's a very common convention in languages
like Perl (except instead of throwX it's usually "die"). But it's a bit
unconventional. So I would not use it in code that had to maintained by
others not familiar with the idiom.
--
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?