Colin, On Sunday 11 September 2005 00:26, Colin Carter wrote:
On Sunday 11 September 2005 12:09, Randall R Schulz wrote:
Colin,
...
Wrong. You need to code to the standard so your code is immune to changes in the compiler or the environment in which it is to be run.
Randall, You cannot always code to 'the standard'.
Sorry, but again you're wrong. You may have to work around compiler problems and idiosyncracies (more so in the past than now, but still an issue), but that's the exception and one of the reasons conditional compilation is necessary in C/C++.
For example, FORTRAN (a very well established language) had a standard of pushing the first argument first, and always by address - simple idea. The other languages followed suit.
If you're going to keep thinking in language implementation terms instead of in terms of the abstractions in which the language is defined, you're going to remain confused.
Then came C For other languages to mix it with C the compilers had to have 'fiddles' inserted into the compilers. e.g. C TYPE routine call Eventually FORTRAN changed its standards to try to assist with compatability. Which means that old FORTRAN code would no execute.
"Fiddles?" You really seem to think that compilers (or their writers) are capricious. Besides, I don't think we're talking about FORTRAN here.
And as for ME being 'non-standard', I would like to point out that I developed a very large program over four years of work, on a PC. Then mailed it (yes, we had 'email' years ago) to a reduced instruction set VAX mainframe and it worked the first run. (Code still took 6 hours to execute.)
I don't know what ME is. And drop the "older than thou" routine. Not everyone here is newbie.
...
You have got to be kidding. The language is quite clear about the distinctions between values, pointers and references and which is used when and while there are many areas where the compiler (writer) has discretion about its exact behavior, there's no such discretion (no "feels like it") when it comes to parameter passing and whether values, pointers or references are what's passed. That's a big part of what strong typing is about, after all.
You know, you use jargon like "typing", as thought it is a new idea. Us old guys just considered it an intrinsic part of the process; much like we structured our code years before the academics invented the word "structured design" to prevent kids from making spaghetti code. (Twit the language PASCAL, at first without a goto.)
You don't even know who you're talking to. And you clearly don't know what you're talking about.
While no language can be used without understanding, C and C++ are more demanding than most in their subtleties. So be it.
I suggest that you replace the word 'demanding' with 'complicated and messy'.
So be it. If you can't handle it, choose a different language.
Colin
Randall Schulz