future note to whoever updates the C definition of "C++" or feels the need to clarify it:
- Does your statement reflect a strict definition of *what it does*, or does it help illustrate *why the language is called C++*?
- Is tangential syntactical clarification about this statement relevant to the goal of explaining why the language is called C++?
- Is it good enough already or are you just changing it for the hell of it?
For example: stating that "C++ is a C expression that stands for postorder incrementation of the variable C" is a great definition of C syntax. Yet it does almost nothing to explain why there is a language called C++ and how that relates to a language called C.
This is not addressed to anyone in particular, but to the inevitable next person to update this page so please don't take offense.
Finally, I changed it by adding a quote from stroustrup, and an explicit statement that yes it is a play of "words". Perhaps "from the horse's mouth" will do.
There is nothing inaccurate about stating that ++ is an increment operator. Your comparison statement has no relevance outside a discussion of postorder-preorder discussion--and that discussion would be covered most likely in C programming language.
BTW, wouldn't C++ == C since its not incremented yet?
- [Technically the pun is inaccurate; C++ < C in both languages.]
because it's wrong. In both languages, the order of evaluation is unspecified. If the right-hand side is evaluated first, then the expression as a whole evaluates to false or 0 (depending on the langauge). This assumes that the type of C is a built-in arithmetic type, of course. --Zundark, 2001 Nov 1
Any expression with "C" and "C++" both occurring between sequence points (and comparisons are not sequence points) is officially undefined, which means the compiler is free to do anything at all. That's the nature of C, to leave things up to the compiler. Other expressions with "c++" (by itself) have the value of "c", if that value is used. By itself, it is used only for the side-effect. At any rate, the statement is not only inaccurate, it's totally irrelevant smart-ass nonsense that provides no useful information to the reader about the topic here, so by deleting it we're not deleting "content", because the statement has no content. The absolute undeniable facts are these: C programmers often use the expression "c++", by itself, to increment the variable "c". Stoustrup chose to use this common and useful idiom to name his language. Even if you modified the statement to be accurate, obscure details about particular operator behavior should go into some different article that covers such details. --Lee Daniel Crocker
Amen! Thank you for stating so eloquently what I was trying to say... --Alan D
But, in fact, you ARE deleting content. Moreover, in this context, it is not an "obscure detail" about operator behavior, but a widely-known observation about the pun which underlies the name of the C++ programming language. Your description of this information as "totally irrelevant smart-ass nonsense" is simply incorrect. I am frankly somewhat puzzled as to why you are reacting so emotionally to including this information. I suppose it has something to do with the way that programming languages seem to inspire almost religious fervor in some people. You evidently seem to think this information somehow denigrates C++ or Stoustrup. Of course that's ridiculous. But it's clear that your actions are an inappropriate attempt to censor Wikipedia content. -HWR
Have you even taken a high school english class? Did they teach you how to write papers? Nobody is excising it based on a "denigration of stroustrup". It was deleted because:
- The expression "C++", as it is used in C, C++, and the _name_ "C++", is sitting alone. Any argument about operator or comparison precedence is not relevant to the discussion because it has ONE OPERATOR and NO COMPARISON.
- The statement is technically incorrect, as Zundark and LDC have pointed out because the order is undefined (a point I was not aware of, something I freely admit.)
In other words, it was deleted because good editing requires it. Not everything is purely about content here. Lets suppose that the statement (C++==C) _was_ true. We still would not include this information because it is not relevant to the topic on hand. No one mentioned comparison, so any comments on order of evaluation in comparisons should be relegated to somewhere else. This is called GOOD WRITING.
You want to write about it? Here's how you might do it and retain document quality. Note something like
(stroustrup could have chosen "++C" as well. See Operator precedence.)
Then write to your hearts content in Operator precedence about these niggling little points that are suddenly relevant _in proper context_.
No one is giving up, because we care about the quality of wikipedia. Alan D
First, the point I was attempting to make really has nothing to do with operator precedence or the order of evaluation of operands. It has to do with the value of the expression "C++", and it is perfectly relevant in this context. In fact, Stroustrup himself mentions it in precisely the same context. I readily accept the criticism that the point could be better expressed, in which case it should be rewritten, not deleted. Good editing does not require the deletion of content. If you are unable to rewrite it to your stylistic satisfaction, then you should leave it in place for someone else. And yes, I did take english class in high school (at least I think so, it was a long time ago). And no, personal insults are not appropriate conduct here either. -HWR
first, I formally rescind my insult with apologies. On the other hand, I (and I'm sure a few other contrubuters here) resent the implication that anyone is trying to _censor_ content. I also happen to think that the notion that anyone would "censor" information like that for some bizarre reason is kind of funny. Now I think that I have a fairly good grasp on the C++ language. Lee here has written quite a bit in the Java language page and is quite a smart fellow himself, and it would seem that Zundark knows what he is talking about as well. Yet thus far your point has eluded all of us. This could be entirely the result of our own failings, but the burden lies on you to demonstrate why this point is valid, or else the basis of the wiki process requires us to edit the page.
I'm still at a loss as to why the information is important, especially if it has nothing to do with order of evaluation. Perhaps the best way to demonstrate this would be to produce the strousrup quote you refer to. I have read his book on C++ (well, a good chunk of it) including the part where he mentions the naming of C++. Thats where I got his quote. He didn't see fit to mention your point there either. And please don't produce a quote that has nothing to do with the naming of C++.
And lastly, I don't think anyone is acting emotionally about the quote itself, but as a result of our repeated lack of understanding as to why this is relevant information while at the same time someone else sees it as indispensible. This has degenerated into a flame war, and I don't think anyone wants that. I will have nothing more to say on the subject save a personal apology if you can demonstrate to the community's satisfaction why this is relevant.
Apology accepted; no big deal. I have attempted a rewrite I hope you'll find acceptable. Let me know if you feel there's still a problem.
As it is currently written (some say ++c would have been better...) it is now more accurate and I think better fitting. I suppose a bit of culture isn't out of place, so my earlier "irrelevant" comment is retracted. --LDC