Talk:C++: Difference between revisions

Content deleted Content added
MadCow257 (talk | contribs)
Undid revision 1293529255 by 110.38.251.6 (talk)
 
Line 1:
{{peerreviewSkip to talk}}
{{Talk header|search=yes}}
{{talkheader}}
{{GAFAQ}}
{{Article history|action1=GAN|action1date=12 December 2005|action1result=pass|action1oldid=31056516
{{Wikipedia: WikiProject C++/Article}}
|action2=PR|action2date=19 March 2006|action2link=Wikipedia:Peer review/C++/archive1
|action3=GAR|action3date=8 September 2007|action3result=delisted|action3link=Wikipedia:Good article review/Archive 28#C++
|action4=GAN|action4date=27 August 2011|action4result=failed|action4link=Talk:C++/GA1
|topic=Engtech
|currentstatus=DGA
}}
{{WikiProject banner shell|class=B|vital=yes|1=
{{WikiProject C/C++ |importance=Top |c++=yes}}
{{WikiProject Computer science |importance=High}}
{{WikiProject Computing |importance=Top |software=y |software-importance=Top |science=y |science-importance=High}}
{{WikiProject Microsoft |importance=Top}}
}}
{{User:MiszaBot/config
|archiveheader = {{aan}}
|maxarchivesize = 150K
|counter = 12
|minthreadsleft = 4
|algo = old(60d)
|archive = Talk:C++/Archive %(counter)d
}}
{{Copied|from=C++|from_oldid=1284555806|to=C++ syntax|to_diff=1277869498}}
 
== Move Language section to [[C++ syntax]] ==
{| class="infobox" width="270px"
|-
!align="center"|[[Image:Vista-file-manager.png|50px|Archive]]<br/>[[Wikipedia:How to archive a talk page|Archives]]
----
|-
|
* [[Talk:C++/Archive 1|January 2006]]
* <!--[[Talk:C++/Archive 2|March 2006]]-->
*
*
|}<!--Template:Archivebox-->
 
The Language section is excessively long and provides copious amounts of technical information that isn’t appropriate when pages like [[C++ syntax]] exists (it was previously a redirect page to this section, but there is no reason to leave it as a redirect when such a page could be expanded to contain the technical information). Pages such as [[Java (programming language)]] are much more concise and leave the intricacies of syntax to its own page, [[Java syntax]]. Therefore I propose that the section should be cleared or at least simplified enough to shorten and keep the technical details to the dedicated page. [[Special:Contributions/72.136.107.164|72.136.107.164]] ([[User talk:72.136.107.164|talk]]) 20:53, 27 February 2025 (UTC)
== <code>#include <ostream></code>, <code>#include <istream></code>, and all that... ==
:This is [[WP:RFCNOT|not an RfC matter]]. Discuss in the normal way please. ''If'' it is felt that broader input is needed, the procedure described at [[WP:SPLIT]] should be followed. --[[User:Redrose64|<span style="color:#a80000; background:#ffeeee; text-decoration:inherit">Red</span>rose64]] &#x1f339; ([[User talk:Redrose64|talk]]) 19:40, 3 March 2025 (UTC)
:I do think that Language should be moved to a different article, as it is quite long. It would also be good to split it for people who want to learn the language and for people who just want to learn the history of the language as they may get confused. [[User:Vivaidris|Vivaidris]] ([[User talk:Vivaidris|talk]]) 19:46, 10 March 2025 (UTC)
::I think it would be ideal if the Language section were not deleted entirely, but trimmed or otherwise rewritten only to contain rudimentary knowledge/information on the language, while detailed information about the language and its syntax were moved to the C++ syntax page. [[Special:Contributions/129.97.124.47|129.97.124.47]] ([[User talk:129.97.124.47|talk]]) 22:37, 10 March 2025 (UTC)
:It's been a month since this discussion began and there hasn't been much disagreement (though admittedly not much engagement at all), is it okay to just make the requested changes? [[Special:Contributions/129.97.124.74|129.97.124.74]] ([[User talk:129.97.124.74|talk]]) 11:06, 28 March 2025 (UTC)
::Well, have you left notes at interested Wikiprojects, like [[Wikipedia talk:WikiProject C/C++]] or [[Wikipedia talk:WikiProject Computer science]]? Templates such as {{tlx|fyi}} and {{tlxs|please see}} are available for this. --[[User:Redrose64|<span style="color:#a80000; background:#ffeeee; text-decoration:inherit">Red</span>rose64]] &#x1f339; ([[User talk:Redrose64|talk]]) 15:17, 29 March 2025 (UTC)
:::I have done this now. I will await some responses and if nothing is said I will just proceed with making the changes. [[Special:Contributions/129.97.124.119|129.97.124.119]] ([[User talk:129.97.124.119|talk]]) 20:14, 2 April 2025 (UTC)
::::I think enough time has passed. I am going to make the changes now. [[Special:Contributions/129.97.124.133|129.97.124.133]] ([[User talk:129.97.124.133|talk]]) 10:57, 8 April 2025 (UTC)
 
== Proposed Edits to C++ Compatibility Section: C++ and Assembly ==
According to the standard, <code>operator <<</code> and <code>operator >></code> for <code>ostream</code> and <code>istream</code> are declared in the headers <code><ostream></code> and <code><istream></code>. <code><iostream></code> is not required to include those headers. To be strictly conformant, the code examples using stream input and output have to include not only <code><iostream></code> but <code><ostream></code> and <code><istream></code> as well. --[[User:Tobias Bergemann|Tobias Bergemann]] 09:19, 14 October 2005 (UTC)
 
I would like to update the compatibility section of the C++ article to include a brief mention of the relationship between C++ and Assembly language. The goal is to highlight how C++ can interface with Assembly, particularly in contexts where low-level programming or performance optimizations are required, looking for any feedback or advice before I begin editing.
:You may be correct, but why do all books, including Bjarne's, use iostream? --[[User:MarSch|MarSch]] 15:28, 27 October 2005 (UTC)
 
=== Key Points to be Added: ===
:: Certainly not all books. "Accelerated C++" doesn't, if I remember correctly. But this really is a very minor point, and I won't revert if anybody changes the code examples again.
:: The header <code>iostream</code> has to include the definition of <code>class std::ostream</code> in some way, but the streaming operators are free functions, i.e. they are not part of the class definition. The class definition of <code>class std::ostream</code> may well reside in a separate header file that is included from both <code>ostream</code> and <code>iostream</code> but this separate header file need not include the declarations for the streaming operators. (Strictly speaking, <code>iostream</code> and <code>ostream</code> don't even have to exist as real files. The language standard is carefully worded so that the phrase <code>#include <iostream></code> in the source has the effect to make available a certain set of classes, functions, and objects. It doesn't have to really include a source file.) --[[User:Tobias Bergemann|Tobias Bergemann]] 08:17, 28 October 2005 (UTC)
 
* '''Interfacing with Assembly:''' C++ allows for the inclusion of inline assembly, enabling programmers to write assembly code within C++ programs for tasks that require direct hardware manipulation or highly optimized routines.
:Do you have a reference for your statement about the headers? --[[User:MarSch|MarSch]] 13:14, 28 October 2005 (UTC)
* '''Assembly Language Integration:''' Many C++ compilers, like GCC and MSVC, support integrating assembly code into C++ programs, offering fine-grained control over system resources.
* '''Performance Considerations:''' C++’s low-level access and ability to combine with assembly language can be crucial for performance-critical applications, particularly in embedded systems or system programming.
 
===References===
::The ultimate reference is, of course, the standard document itself. My copy is at my workplace, so I can't quote chapter and verse until monday. Other than the standard I can only refer you to a couple of usenet discussions, e.g. "[http://groups.google.com/group/comp.std.c++/browse_frm/thread/af12421c0509dbfb/5bde7cd0c9237fea?tvc=1&q=%22%23include+%3Costream%3E%22+group:comp.std.c%2B%2B&hl=de#5bde7cd0c9237fea Standard hello world problem]" and "[http://groups.google.com/group/comp.std.c++/browse_frm/thread/93e1f28fa4058818/fa8b7f3087e6a081?tvc=1&q=%22%23include+%3Costream%3E%22+group:comp.std.c%2B%2B&hl=de#fa8b7f3087e6a081 Defect: std::endl in (a) 22.2.8/5, (b) 22.2.8/11, (c) 22.2.8/13, (d) 27.6.1.3/22]" from <code>comp.std.c++</code> and "[http://groups.google.com/group/comp.lang.c++.moderated/browse_frm/thread/ea9f8cb77e51560/c44855009217a382?lnk=st&q=%22%23include+%3Costream%3E%22+group:comp.lang.c%2B%2B.moderated&rnum=1&hl=de#c44855009217a382 templates]" from <code>comp.lang.c++.moderated</code>.
* asm declaration[https://en.cppreference.com/w/cpp/language/asm¶]
::In any case, most participants of the referenced usenet discussions (which included members of the standardization committee) apparently consider the current situation a defect in the standard that may well be fixed with the next revision. --[[User:Tobias Bergemann|Tobias Bergemann]] 20:06, 28 October 2005 (UTC)
* Interfacing C and C++ With Assembly Language[https://software-dl.ti.com/codegen/docs/tiarmclang/compiler_tools_user_guide/compiler_manual/runtime_environment/interfacing-c-and-c-with-assembly-language-stdz0544217.html#interfacing-c-and-c-with-assembly-language ¶]
[[User:Vasisht25|Vasisht25]] ([[User talk:Vasisht25|talk]]) 16:08, 30 March 2025 (UTC)
 
== Update to Standardization Section ==
:: Ah, I found a [http://groups.google.com/group/alt.comp.lang.learn.c-c++/browse_frm/thread/695389f94ecec593/4227caf0ee1452a2?lnk=st&q=%22%3Costream%3E%22+author:bjarne&rnum=12&hl=de#4227caf0ee1452a2 post] by [[Bjarne Stroustrup]] himself to <code>alt.comp.lang.learn.c-c++</code> about the problem. --[[User:Tobias Bergemann|Tobias Bergemann]] 20:16, 28 October 2005 (UTC)
:I removed it again, and would like to see it stay that way. If it does not work for you, then you need a different compiler :)[[User:MadCow257|MadCow257]] 21:08, 3 March 2006 (UTC)
::Nevertheless, a compiler could perfectly implement the entire C++ standard and still require you to include ostream, thus it should stay in the article until this defect in the standard is corrected. --[[User:Yamla|Yamla]] 21:23, 3 March 2006 (UTC)
 
I'm looking to append to the bullet points in this section with two recently published technical reports and documents from the C++ International Organization for Standardization. ISO/IEC TS 9922:2024<sup>[https://www.iso.org/standard/83630.html]</sup> offers specifications for C++ extensions for concurrency 2, and ISO/IEC TS 19568:2024<sup>[https://www.iso.org/standard/86293.html]</sup> covers C++ extensions for library fundamentals. I believe these additions will keep the article page more up to date with the committee. [[User:TheGreatMuffinMan125|TheGreatMuffinMan125]] ([[User talk:TheGreatMuffinMan125|talk]]) 04:35, 31 March 2025 (UTC)
== Cleanup ==
 
[[:WP:NOT#Wikipedia is not a mirror or a repository of links, images, or media files|Wikipedia is not a repository of links]]. This article is extraordinarily long and full of links, of which some are certainly not appropriate (it has crossed the [[:WP:SPAMHOLE|Spam Event Horizon]]). Please pare down the links to only what is appropriate for an [[encyclopedia]]. --[[User:Donhalcon|bmills]] 14:45, 16 February 2006 (UTC)
 
I decided to start being harsh with links. In particular I killed anything I felt was a) out of date, b) just links to things that look a bit like C++, but aren't or c) more suitable for the wikibook on learning C++.
 
As I expected, some things popped back in. http://www.eventhelix.com/RealtimeMantra/basics/ComparingCPPAndCPerformance.htm I would like to re-remove, but I'd perfer to talk about it. It claims to show how C++ maps to C. The problem is that the standard doesn't define how "C++ maps to C" so this ends up just being one person's belief on how they might go about implementing a C++ compiler. I know at least that the way is laying out functions bares little resemblance to how g++ goes about compiling C++ code, so I'm not convinced it is helpful.
 
:I like your progress so far with the cleanup; you're definitely moving things in the right direction. As for the "mapping" link, have a look at [http://en.wikipedia.org/w/index.php?title=C%2B%2B&diff=35808922&oldid=35737461 this diff]. That particular link was added as part of a pair from an anonymous DirecPC IP; checking other contribs from that IP reveals similar links at [[Session Initiation Protocol]]. I'd say that means it's linkspam, and thus safe to remove; if a comparison with implementation in another language is needed, we can always add actual content from a source that isn't out to make a profit. --[[User:Donhalcon|bmills]] 18:34, 20 February 2006 (UTC)
 
:Cleaned a few references, it just looks like a huge list of books. --[[User:Nvineeth|vineeth]] 07:24, 27 February 2006 (UTC)
 
== Tags ==
 
I removed 5 links and 7 see alsos as a part of the cleanup, and have now at least scanned the content of each remaining link and seen that it is reputable and worthwhile. With that in mind, my question is should the cleanup tags be removed? In my opinion, the one on the see also section should, and maybe link one too. I'm new to wikipedia editing so I don't know how that really works yets.
[[User:MadCow257|MadCow257]] 23:58, 24 February 2006 (UTC)
 
:I've removed the cleanup tag from the "see also" section &mdash; it looks good! Still a lot of external links, but good progress is being made. I added a cleanup tag to the references, too, because it seems like some of those books are just C++ tutorials added for commercial and/or fanatical purposes, and you guys are doing such great work getting rid of [[cruft]] in the other sections! --[[User:Donhalcon|bmills]] 02:46, 25 February 2006 (UTC)
 
== Standard Libraries ==
I recently replaced:
 
A project known as [http://www.stlport.org STLPort], based on the [[Silicon Graphics|SGI]] STL, maintains an up-to-date implementation of the STL, IOStreams and strings. Other projects also make variant custom implementations of the standard library with various design goals.
 
with:
 
All C++ compilers provide an implementation of the C++ standard library. Compiler-independant implemenations, such as [http://www.stlport.org STLPort], also exist. Other projects also make variant custom implementations of the standard library with various design goals.
 
It was reverted by Ozzmosis as "inaccurate and unfinished". OK, I can see an argument the language could do with a little polishing, but I don't see that it was inaccurate. I don't know of any C++ compiler that doesn't ship with an implementation of the standard library, and I find for the most recent version of every compiler, their version is usually better than STLPort's. I feel the current wording implies STLPort is worthy as a "better implementation", whereas libstdc++ (g++'s implementation) or Dinkumware's (the verson packaged with vc++ and icc) are considered better by many people. Anyone want to suggest different / alternative wording? [[User:Mrjeff|Mrjeff]] 11:11, 27 February 2006 (UTC)
 
:The problem with asserting that "all C++ compilers provide" is that you really don't know this for certain. It's possible for someone to write a C++ compiler that doesn't provide any standard libraries, eg. for an embedded system. Also, OpenWatcom C++ is one compiler that comes to mind that has only recently provided a very basic and incomplete STL implementation. See http://www.openwatcom.org/index.php/Open_Watcom_STL . The "unfinished" comment was my mistake as you left out a colon before the list and I misread the diff. --[[User:Ozzmosis|ozzmosis]] 12:44, 27 February 2006 (UTC)
 
:: Ah, you think you've used most of the C++ compilers under the sun, and up pops another one :) I'll re-think how I'm going to change that section, and have another go :)
 
:::Why not just replace "all" with the weaker "many"? Presumably you can cite a fair number of compilers with STL implementations, and just about anything you could say has less POV than an STLPort ad. &mdash;<tt>[[User:donhalcon|donhalcon]]</tt><sup>[[User talk:donhalcon|〒]]</sup> 14:56, 27 February 2006 (UTC)
 
::: :-) [[Watcom C compiler|Watcom C++]] is pretty old now. Anyway, I've copyedited that paragraph so hopefully it's now a bit more accurate and unbiased. I used "most"! --[[User:Ozzmosis|ozzmosis]] 15:57, 27 February 2006 (UTC)
 
==A move and/or cleanup==
Per the peer edit and the preferable [[article size]] policy, something needs to be moved out. I propose that a new article bad made called [[Syntax of C%2B%2B]]. This would significantly reduce the size and technicality of this article, while giving more space for the rest of it too expand if needed. Thoughts? [[User:MadCow257|MadCow257]] 03:31, 5 March 2006 (UTC)
 
:The article has a lot of excess content; the "references" and "external links" sections could still use some trimming. Most of the "sample code" examples are also significantly longer they really need to be; the "polymorphism" section is very confusing (the basic idea gets across, but the details are muddled), so it might be good to clean that up and trim it down. Just some ideas for keeping the article size under conrol. &mdash;<tt>[[User:donhalcon|donhalcon]]</tt><sup>[[User talk:donhalcon|╤]]</sup> 05:04, 5 March 2006 (UTC)
 
::[[User:MadCow257|MadCow257]], I don't think moving the whole Syntax section out would be the right thing to do, because the Syntax section isn't really a section on Syntax at all; as it is now, every single section inside Syntax is not about syntax. Instead, I propose that "Sample Code" be moved into [[C++ examples]] (with a link to [[C++ examples]] remaining as the only thing in the "Sample Code" section) and that the "Syntax" header be deleted entirely until there is some section of the article that's really about C++ syntax, rather than sections that are about features of C++ which happen to show examples of syntax. --[[User:Tifego|Tifego]] 02:28, 11 March 2006 (UTC)
 
:::I went ahead and reorganized the article a little bit, but I didn't move anything out yet so it's still too big. The sample code should probably be moved or drastically shortened. And the section on Polymorphism really needs work. It has a big chunk of example code that is confusing and could be replaced with a couple of sentences, it tries to cover too many topics at once, has no clear focus, etc. Also, it only mentions [[template (programming)|templates]] sort-of in the passing, but they are a very important part of polymorphism in C++ and at least deserve their own subsection to emphasize that. --[[User:Tifego|Tifego]] 03:34, 11 March 2006 (UTC)
 
:I would suggest the name [[C++ syntax]] for the child article, along the same lines as [[C syntax]] and [[Java syntax]]. &ndash; [[User:Doug Bell|Doug Bell]] <sup>[[User talk:Doug Bell|talk]]'''&bull;'''[[Special:Contributions/Doug Bell|contrib]]</sup> 12:13, 12 March 2006 (UTC)
 
== The move from "C++" to "C++ programming language" ==
I (mildly) oppose the recent move of the article from [[C++]] to [[C++ programming language]]. From [[Wikipedia:Naming conventions (languages)]]:
:''Languages which share their names with some other thing should be suffixed with "language" in the case of natural languages or "programming language" in the case of programming languages. If the language's name is unique, there is no need for any suffix.''
However, the convention also states (using [[VBScript]] as an example of a language name where no disambiguation is needed):
:''Similarly, please place a redirect to [[VBScript]] at [[VBScript programming language]] and also at [[VBScript (programming language)]].''
It is no big deal either way, and I won't revert the move. &mdash;[[User:Tobias Bergemann|Tobias Bergemann]] 10:16, 12 March 2006 (UTC)
:I agree - see [[Fortran]], [[PHP]], and [[Smalltalk]] for other examples of languages that don't end in "programming language". The move's only justification was that it was for consistency, but it's not consistent by those naming conventions. --[[User:Tifego|Tifego]] 11:20, 12 March 2006 (UTC)
 
I moved the article in this case for consistency with the other programming languages named after a letter. I don't know if the comparison to [[Fortran]], [[PHP]], and [[Smalltalk]] is an apples-to-apples comparison because the name C++ is, well, not much of a name by itself. Since Stroustrup himself calls it the "C++ programming language" (and named his book the same), I think the argument can also be made that that is the actual name of the language. However, if there is a strong consensus to change the name back, I'm not going to lose sleep over it. &ndash; [[User:Doug Bell|Doug Bell]] <sup>[[User talk:Doug Bell|talk]]'''&bull;'''[[Special:Contributions/Doug Bell|contrib]]</sup> 12:13, 12 March 2006 (UTC)
 
:If the scope of this encyclopedia were limited to computer programming related things, I would say the title "C++" is better than "C++ programming language". But it isn't. So, despite me finding the latter a bit clumsy, I think the longer title is true and correct. I took a look at the current ISO Standard. Its name is "Programming languages — C++" (ISO/IEC 14882, second edition 2003-10-15). The first sentence in the intro of the standard reads "This International Standard specifies requirements for implementations of the C++ programming language." I think the situation as it is now is perfect (article name = "C++ programming language" and a redirect to that under the name "C++). --[[User:Adrian Buehlmann|Adrian Buehlmann]] 18:48, 12 March 2006 (UTC)
 
OK, I'm convinced, although this means sort-of ignoring the [[Wikipedia:Naming conventions (languages)]]. --[[User:Tifego|Tifego]] 04:02, 13 March 2006 (UTC)
 
However, C++ is a more commonly known and widely used name when compared to C++ programming language. Similarly, PHP is not at "PHP: Hypertext Preprocessor" and [[RuBisCO]] is not at Ribulose-1,5-bisphosphate carboxylase/oxygenase, because the naming convention says that the most widely used name should be adopted. [[C programming language]] and [[Pascal programming language]] etc. have the words "programming language" appended to the article name only because the omission of them creates ambiguity - simply "Pascal" can refer to the person Blaise Pascal, and simply "C" would make others think you're talking about the letter. But C++ cannot mean anything else - it MUST mean this programming language. Therefore I '''strongly propose a moveback'''. --[[User: Deryck Chan|<font color="brown">De</font>]][[User talk: Deryck Chan|<font color="green">ryc</font><font color="#007dff">k C.</font>]] 09:02, 13 March 2006 (UTC)
 
== Needs cleanup ==
 
I think this article is waaaaay too big for Wikipedia. All those "syntax", "operator" etc. stuff can be done away with. Section 7 -- the whole thing -- is IMO not Wikipedaic. We should link to tutorials, not write one ourselves. People come here to <learn about> C++, not to <learn> C++. If everyone agrees, someone should step up and do some *major* cleanup.
 
I removed the STL code examples; I don't really think we need them. Loads of programmers I know don't even use the STL.
[[User:Jafet.vixle|Jafet.vixle]] 03:44, 13 March 2006 (UTC)
 
:Looks like a step in the right direction. Everything after and including the "Incompatibility with C" section in this article is still way too long, though (as you said). I believe everything that's in the "Language features" section (and a few things that aren't) deserve an entry there for being very relevant to C++, but each subsection should either be much shorter, or consist of a link to another article that covers the topic in more detail. "Sample code" has a lot of description in it, someone should decide how much of that is really notable information. The section on Input/output streams in particular looks like a waste of space considering that io streams were already used in an example above that. --[[User:Tifego|Tifego]] 03:59, 13 March 2006 (UTC)
 
Also, this talk page is getting way too large, somebody should archive all but the newest few topics. --[[User:Tifego|Tifego]] 04:05, 13 March 2006 (UTC)
 
:I moved discussions older than about january 2006 to [[Talk:C++ programming language/Archive 1]]. &mdash;[[User:Tobias Bergemann|Tobias Bergemann]] 13:46, 13 March 2006 (UTC)
 
== Move back to [[C++]]? ==
 
<div style="background-color: #e3f9df; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px solid #AAAAAA;">
:''The following discussion is an archived debate of the proposed move of the article from [[C++ programming language]] to [[C++]]. No further edits should be made to this section. ''
 
The result of the debate was '''move''' by Deryck C. --[[User:Tifego|Tifego]] 04:15, 19 March 2006 (UTC)
 
Previously [[user:Doug Bell|Doug Bell]] moved this article from C++ to C++ programming language (see discussion [[#The move from "C++" to "C++ programming language"|above]]), and there was a dispute concerning his act with no conclusion drawn. I would like to propose a moveback of this article to C++, because:
 
#C++ is a more commonly known and widely used name when compared to C++ programming language. Similarly, PHP is not at "PHP: Hypertext Preprocessor" and [[RuBisCO]] is not at Ribulose-1,5-bisphosphate carboxylase/oxygenase, because the naming convention says that the most widely used name should be adopted.
#[[C programming language]] and [[Pascal programming language]] etc. have the words "programming language" appended to the article name only because the omission of them creates ambiguity - simply "Pascal" can refer to the person Blaise Pascal, and simply "C" would make others think you're talking about the letter. But C++ cannot mean anything else - it MUST mean this programming language.
#[[Wikipedia: Naming conventions (languages)]] reads ''Languages which share their names with some other thing should be suffixed with "language" in the case of natural languages or "programming language" in the case of programming languages. If the language's name is unique, there is no need for any suffix.'' We should conform to these rules.
 
--[[User: Deryck Chan|<font color="brown">De</font>]][[User talk: Deryck Chan|<font color="green">ryc</font><font color="#007dff">k C.</font>]] 04:56, 15 March 2006 (UTC)
 
:I agree with you Deryck, except for one thing. "C" is very commmonly used with "programming langauge", even among experienced coders. I've never heard anyone call C++ "C++ programming langauge" in my life. Point is C is not only called c programming because of ambiguity, but because that's its name. The same does not apply to C++ and it should remain C++. Not really a big issue though with the cheapness of redirects... [[User:MadCow257|MadCow257]] 23:30, 15 March 2006 (UTC)
::Just curious, but did you look at the previous discussion above regard "ever hearing it called "C++ programming langauge"? &ndash; [[User:Doug Bell|Doug Bell]] <sup>[[User talk:Doug Bell|talk]]'''&bull;'''[[Special:Contributions/Doug Bell|contrib]]</sup> 01:07, 16 March 2006 (UTC)
:::Yes, I have, and there is more opposition then support there. I do realize that Wikipedia is not a democracy though. These kind of issues are small and numerous, the best policy would just be to leave them alone (why not make the major issues better first), so it was pretty disappointing when I saw it get moved to c++ programming language. As for Bjarne's book, let me make an analogy. C++ Programming Langauge :: Direct3D Graphics Programming. You would most likely not have a book called C++, nor a book called Direct3D. The longer version is not the name of the langauge, but the name + a description [[User:MadCow257|MadCow257]] 03:10, 16 March 2006 (UTC)
::And you never call this place "Wikipedia the free encyclopedia". If no more oppositions I think undoing the move is what I'd do. --[[User: Deryck Chan|<font color="brown">De</font>]][[User talk: Deryck Chan|<font color="green">ryc</font><font color="#007dff">k C.</font>]] 04:25, 16 March 2006 (UTC)
</div>
I slightly prefer it this way (C++), but wouldn't care much either way. --[[User:Tifego|Tifego]] 06:06, 16 March 2006 (UTC)
 
I could understand using ''C++ Programming Language'' if there was a ''C++, the species of fruit bat'' to distinguish it from, but since there isnt...? [[User:Jonathanischoice|Jon]] 03:20, 19 March 2006 (UTC)
 
== "using namespace" is bad? ==
 
It's written in this article that "some considers using namespace as bad programming practice", and placed down an "citation needed". I wonder is it so much of a bad practice that there can be sources citing it? --[[User: Deryck Chan|<font color="brown">De</font>]][[User talk: Deryck Chan|<font color="green">ryc</font><font color="#007dff">k C.</font>]] 02:07, 19 March 2006 (UTC)
:I noticed that edit, and it's not really acurate. Maybe it should be reverted? [[User:MadCow257|MadCow257]] 02:09, 19 March 2006 (UTC)
::"Some", IMO should really be true. You can't argue that nobody thinks it's bad. But citation is not needed. --[[User: Deryck Chan|<font color="brown">De</font>]][[User talk: Deryck Chan|<font color="green">ryc</font><font color="#007dff">k C.</font>]] 02:17, 19 March 2006 (UTC)
 
:I recall reading it in either Stroustrup's CPPPL, or one of the Meyer or Bruce Eckel books. The idea is that std is such a large namespace that importing it wholesale could be a bad idea. Personally I don't think it's such a bad idea, but what I do is use using namespace std while sketching code and then change it to several using std::cout (etc) statements as it solidifies. [[User:Jonathanischoice|Jon]] 03:07, 19 March 2006 (UTC)
 
::The argument against using an entire namespace is that it essentially circumvents namespacing. However, that can also be an argument for it (i.e. namespaces are annoying and deserve to be circumvented). --[[User:Tifego|Tifego]] 03:11, 19 March 2006 (UTC)
 
:In my programming practice, I use some 20 std:: functions. If each of them has to be implemented with the "using" keyword, the code would be drastically big. --[[User: Deryck Chan|<font color="brown">De</font>]][[User talk: Deryck Chan|<font color="green">ryc</font><font color="#007dff">k C.</font>]] 07:26, 20 March 2006 (UTC)
 
::It's just 20 lines of code, how is that drastically big? &ndash;[[User:Tifego|<small>T</small><sub>i</sub><small>f</small><sub>e</sub><small>g</small><sub>o</sub>]]<sup>[[User Talk:Tifego|(t)]]</sup> <sub>00:46, 20 March 2006 (UTC)</sub>
 
:The entire code is only 100 lines long. --[[User: Deryck Chan|<font color="brown">De</font>]][[User talk: Deryck Chan|<font color="green">ryc</font><font color="#007dff">k C.</font>]] 07:47, 20 March 2006 (UTC)
 
::Oh, I'm more used to dealing with 10000+ lines. It still doesn't matter though, it's not like "using" can possibly makes your code less efficient. If you had said "it would be drastically inconvenient" instead of "the code would be drastically big" I'd only have agreed. &ndash;[[User:Tifego|<small>T</small><sub>i</sub><small>f</small><sub>e</sub><small>g</small><sub>o</sub>]]<sup>[[User Talk:Tifego|(t)]]</sup> <sub>00:46, 20 March 2006 (UTC)</sub>
 
:I usually program for competitions, and the longest program is &lt;1000 lines long. --[[User: Deryck Chan|<font color="brown">De</font>]][[User talk: Deryck Chan|<font color="green">ryc</font><font color="#007dff">k C.</font>]] 08:14, 20 March 2006 (UTC)
 
::Anyway, this is getting way off-topic. I can't find any good references for "using namespaces is bad", only mentions of older programming books saying it's bad, and I don't have any such older programming books to check. Google searches that find anything relevant mostly come up with people saying it's bad (in some forums), but that's no reference. &ndash;[[User:Tifego|<small>T</small><sub>i</sub><small>f</small><sub>e</sub><small>g</small><sub>o</sub>]]<sup>[[User Talk:Tifego|(t)]]</sup> <sub>00:46, 20 March 2006 (UTC)</sub>
 
:What a pity that nobody publishes them from the forum to the site. --[[User: Deryck Chan|<font color="brown">De</font>]][[User talk: Deryck Chan|<font color="green">ryc</font><font color="#007dff">k C.</font>]] 08:54, 20 March 2006 (UTC)
 
:My CS311 teacher says to avoid it ("namespace pollution"?). An article [http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.5 here] says it's not necessarilly bad but should be avoided --[[User:DevastatorIIC|DevastatorIIC]] 10:01, 20 March 2006 (UTC)
 
Added the link there in the using namespace explanation and did a bit rephrasing. --[[User: Deryck Chan|<font color="brown">De</font>]][[User talk: Deryck Chan|<font color="green">ryc</font><font color="#007dff">k C.</font>]] 10:15, 20 March 2006 (UTC)
 
== Reference / External links cleanup ==
 
I noticed that a cleanup tag was put onto the Reference and External links sections some weeks ago. From my peek into the links, nearly all of them are, to some extent, relevant to this article. I'd like to seek some collaboration on the criteria on what kind of external links and references should be kept and what to be removed. --[[User:Deryck Chan|<font color="green">D</font>]][[User: Deryck Chan/Esperanza|<font color="green">e</font>]][[User: Deryck Chan|<font color="brown">ryc</font>]][[User talk:Deryck Chan|<font color="#007dff">k C.</font>]] 14:42, 24 March 2006 (UTC)
:To me, those don't even seem neccesary anymore. I've gone through all of 'em and they are relevant. There isn't any specific policies so is the problem that there's to many?