FAQs in section [4]:
[4.1] What updates were made for the 05/03 release? New!
[Recently created (in 5/03). Click here to go to the next FAQ in the "chain" of recent changes.]
1 New FAQs:
5 Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.2] What updates were made for the 04/03 release? New!
[Recently created (in 4/03). Click here to go to the next FAQ in the "chain" of recent changes.]
1 New FAQs:
13 Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.3] What updates were made for the 03/03 release?
1 New FAQs:
4 Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.4] What updates were made for the 02/03 release?
4 New FAQs:
12 Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.5] What updates were made for the 01/03 release?
9 New FAQs:
16 Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.6] What updates were made for the 12/02 release?
Big-picture changes:
34 New FAQs:
- [4.6] What updates were made for the 12/02 release?
- [13.11] How can I overload the prefix and postfix forms of operators ++ and --?
(thanks to Sandeep Grover)
- [13.12] Which is more efficient: i++ or ++i?
- [15.12] How can I open a stream in binary mode?
(thanks to Simon Barner)
- [15.14] How can I write/read objects of my class to/from a data file?
- [15.15] How can I send objects of my class to another computer (e.g., via a socket, TCP/IP, FTP, email, a wireless link, etc.)?
- [19.8] I've been told to never use protected data, and instead to always use private data with protected access functions. Is that a good rule?
(thanks to a question from Andrew Chan)
- [19.9] Okay, so exactly how should I decide whether to build a "protected interface"?
- [21.11] How could "it depend"??!? Aren't terms like "Circle" and "Ellipse" defined mathematically?
- [25.1] How is this section organized?
- [25.2] I've been told that I should never use multiple inheritance. Is that right?
- [25.3] So there are times when multiple inheritance isn't bad?!??
- [25.4] What are some disciplines for using multiple inheritance?
- [25.5] Can you provide an example that demonstrates the above guidelines?
- [25.6] Is there a simple way to visualize all these tradeoffs?
- [25.7] Can you give another example to illustrate the above disciplines?
- [25.11] What special considerations do I need to know about when I use virtual inheritance?
- [25.12] What special considerations do I need to know about when I inherit from a class that uses virtual inheritance?
- [25.13] What special considerations do I need to know about when I use a class that uses virtual inheritance?
- [25.14] One more time: what is the exact order of constructors in a multiple and/or virtual inheritance situation?
(thanks to Carl Daniel)
- [33.7] Can I convert a pointer-to-member-function to a void*?
- [33.8] Can I convert a pointer-to-function to a void*?
- [34.13] How can I avoid linker errors with my template functions?
(thanks to a suggestion by Michael Kochetkov)
- [34.14] How can I avoid linker errors with my template classes?
(thanks to a suggestion by Michael Kochetkov)
- [35.1] What's this "serialization" thing all about?
(thanks to a question from Stephen Tashiro)
- [35.2] How do I select the best serialization technique?
- [35.7] How do I serialize objects that aren't part of an inheritance hierarchy and that don't contain pointers to other objects?
- [35.8] How do I serialize objects that are part of an inheritance hierarchy and that don't contain pointers to other objects?
- [35.9] How do I serialize objects that contain pointers to other objects, but those pointers form a tree with no cycles and no joins?
- [35.10] How do I serialize objects that contain pointers to other objects, but those pointers form a tree with no cycles and only "trivial" joins?
- [35.11] How do I serialize objects that contain pointers to other objects, and those pointers form a graph that might have cycles or non-trivial joins?
(thanks to a question from Stephen Tashiro)
- [35.12] Are there any caveats when serializing / unserializing objects?
- [35.13] What's all this about graphs, trees, nodes, cycles, joins, and joins at the leaves vs. internal nodes?
- [38.3] Can I templatize the above functions so they work with other types?
(inspired by Merlyn Morgan-Graham)
20 Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.7] What updates were made for the 09/02 release?
Big-picture changes:
- Hyperlinks now have "hover text" text that most browsers show when
your mouse hovers over a hyperlink (though please don't write me if your
particular browser doesn't have this feature; most browsers have it but some
do not).
- Added a new mirror site in
Poland.
- Made things easier to find by adding lots more index-terms to
the permuted subject index.
9 New FAQs:
31 Changed FAQs:
- [2.5] Where can I download a Chinese translation of the C++ FAQ Lite?
(updated the URL for the Big5 encoding)
- [5.1] What does IMHO mean? (or IMO, IMNSHO, FWIW, OTOH, etc.)?
(added PMFJI)
- [5.4] How can I find out about general netiquette so I don't embarrass myself?
(added admonitions against top-posting, HTML/rich-text postings, attachments, "C/C++," and confusing classes with objects; also removed "include a valid email address")
- [6.8] Are virtual functions (dynamic binding) central to OO/C++?
(minor clarifications)
- [6.13] What are some "interview questions" I could ask that would let me know if candidates really know their stuff?
(fixed a spelling error thanks to Martin Linklater)
- [9.1] What's the deal with inline functions?
(rewrote, adding several new points)
- [9.3] Do inline functions improve performance?
(rewrote, added numerous new points)
- [9.5] Why should I use inline functions instead of plain old #define macros?
(wordsmithed)
- [10.3] Can one constructor of a class call another constructor of the same class to initialize the this object?
(rewrote for clarification thanks to Nikolai Borissov)
- [10.4] Is the default constructor for Fred always Fred::Fred()?
(partially rewrote for clarity)
- [11.6] What if I want a local to "die" before the close } of the scope in which it was created? Can I call a destructor on a local if I really want to?
(wordsmithed)
- [17.4] How should I handle resources if my constructors may throw exceptions?
(added the example and the admonition to use a typedef)
- [17.5] How do I change the string-length of an array of char to prevent memory leaks even if/when someone throws an exception?
(rewrote to clarify/strengthen)
- [18.8] What does "Fred const& x" mean?
(rewrote to address the "guru approach")
- [20.5] When should my destructor be virtual?
(rewrote)
- [21.3] Is a parking-lot-of-Car a kind-of parking-lot-of-Vehicle?
(strengthened in several places)
- [21.8] But I have a Ph.D. in Mathematics, and I'm sure a Circle is a kind of an Ellipse! Does this mean Marshall Cline is stupid? Or that C++ is stupid? Or that OO is stupid?
(fixed typo in first paragraph thanks to Jim Fischer)
- [21.12] If SortedList has exactly the same public interface as List, is SortedList a kind-of List?
(strengthened the wording in a few places)
- [23.3] When my base class's constructor calls a virtual function on its this object, why doesn't my derived class's override of that virtual function get invoked?
(rewrote completely and added an example program)
- [23.5] Should a derived class redefine ("override") a member function that is non-virtual in a base class?
(reworded the question clarification)
- [23.6] What's the meaning of, Warning: Derived::f(float) hides Base::f(int)?
(changed typo f(double) to f(float) thanks to Tarjei Knapstad)
- [26.9] When initializing static data members of built-in / intrinsic / primitive types, should I worry about the "static initialization order fiasco"?
(reworded thanks to Orjan Petersson)
- [29.2] Where do I start? Why do I feel so confused, so stupid?
(added sites for "sample problems")
- [29.16] Why is floating point so inaccurate? Why doesn't this print 0.43?
(moved from the Miscellaneous Technical Issues section)
- [29.17] Why doesn't my floating-point comparison work?
(added links to David Goldberg's paper and to Doug Priest's supplement thanks to Kevin Quitt; added a definition for isEqual(double,double) thanks to Steve Summit; moved from the Miscellaneous Technical Issues section)
- [32.5] How can I call a non-system C function f(int,char,float) from my C++ code?
(changed "C code" to "C++ code" in the first sentence thanks to Sreenivas Sunil Penumarthy)
- [33.5] How can I avoid syntax errors when calling a member function using a pointer-to-member-function?
(made it clearer there is an and between the recommended typedef and macro)
- [33.6] How do I create and use an array of pointer-to-member-function?
(made it clearer there is an and between the recommended typedef and macro)
- [36.4] Where can I get help on how to use STL?
(wordsmithed for clarity)
- [36.9] Where can I get tons and tons of more information on C++ class libraries?
(added the "with frames" URL for the C++ Libraries FAQ and the comment about google, both thanks to Henrik Haraldsson)
- [39.1] How can I generate HTML documentation for my classes? Does C++ have anything similar to javadoc?
(moved from the Miscellaneous Technical Issues section)
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.8] What updates were made for the 06/02 release?
Big-picture changes:
20 New FAQs:
13 Changed FAQs:
- [2.7] Where can I download a Portuguese translation of the C++ FAQ Lite?
(updated the URL)
- [3.1] Is there a C++ FAQ Book in addition to the C++ FAQ Lite?
(changed the URL for the book cover and excerpts thanks to Thomas Hansen; also added the sample chapter and source code.)
- [5.6] Wait a minute, does that previous FAQ say to not answer their question just because it's already answered in the FAQ?!?
(fixed misspelling in "cripple" thanks to John Marshall plus general rewording)
- [5.13] What about spam?
(fixed a typo thanks to Paul Savage)
- [10.6] Should my constructors use "initialization lists" or "assignment"?
(added symmetry argument wrt non-static const members thanks to Tanmoy Bhattacharya)
- [10.13] Why doesn't the construct-on-first-use idiom use a static object instead of a static pointer?
(made substantive changes to the second-to-last paragraph thanks to Amitha Perera and Wil Evers)
- [18.11] What do I do if I want a const member function to make an "invisible" change to a data member?
(reworded the question to distinguish "invisible change" from "invisible data member" thanks to Thomas Hansen)
- [26.4] But, but, but what about machines where a char has more than 8 bits? Surely you're not saying a C++ byte might have more than 8 bits, are you?!?
(removed a superfluous statement)
- [26.6] I'm sooooo confused. Would you please go over the rules about bytes, chars, and characters one more time?
(rewrote; changed the example from the mythical FOO machine to a PDP-10, plus added words showing how to simulate pointers using software, much thanks to Andrew Koenig)
- [26.7] What is a "POD type"?
(added note that POD types can contain non-virtual member functions thanks to Andrew Koenig)
- [26.8] When initializing non-static data members of built-in / intrinsic / primitive types, should I use the "initialization list" or assignment?
(clarified the cross-reference)
- [26.9] When initializing static data members of built-in / intrinsic / primitive types, should I worry about the "static initialization order fiasco"?
(made it clearer that the FAQ provides a solution)
- [37.5] Where can I get information about the C++ compiler from {Borland, IBM, Microsoft, Sun, etc.}?
(updated the link to KAI C++)
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.9] What updates were made for the 05/02 release?
Big-picture changes:
16 New FAQs:
- [4.9] What updates were made for the 05/02 release?
- [5.6] Wait a minute, does that previous FAQ say to not answer their question just because it's already answered in the FAQ?!?
- [15.17] How can I tell {if a key, which key} was pressed before the user presses the ENTER key?
(inspired by a posting by Alan Didey)
- [15.18] How can make it so keys pressed by users are not echoed on the screen?
- [15.19] How can I move the cursor around on the screen?
- [26.1] Can sizeof(char) be 2 on some machines? For example, what about double-byte characters?
(inspired by Randy Sherman)
- [26.2] What are the units of sizeof?
(inspired by Randy Sherman)
- [26.3] Whoa, but what about machines or compilers that support multibyte characters. Are you saying that a "character" and a char might be different?!?
(inspired by Randy Sherman)
- [26.4] But, but, but what about machines where a char has more than 8 bits? Surely you're not saying a C++ byte might have more than 8 bits, are you?!?
(thanks to Randy Sherman)
- [26.5] Okay, I could imagine a machine with 9-bit bytes. But surely not 16-bit bytes or 32-bit bytes, right?
(thanks to Randy Sherman)
- [26.6] I'm sooooo confused. Would you please go over the rules about bytes, chars, and characters one more time?
(thanks to Randy Sherman)
- [26.7] What is a "POD type"?
- [26.8] When initializing non-static data members of built-in / intrinsic / primitive types, should I use the "initialization list" or assignment?
- [26.9] When initializing static data members of built-in / intrinsic / primitive types, should I worry about the "static initialization order fiasco"?
- [26.10] Can I define an operator overload that works with built-in / intrinsic / primitive types?
- [26.11] When I delete an array of some built-in / intrinsic / primitive type, why can't I just say delete a instead of delete[] a?
5 Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.10] What updates were made for the 04/02 release?
3 New FAQs:
4 Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.11] What updates were made for the 03/02 release?
Global changes:
- Changed the HTML "anchor" scheme so it conforms to
the
standard. Thanks to Eric Anderson for pointing this out.
4 New FAQs:
27 Changed FAQs:
- [3.1] Is there a C++ FAQ Book in addition to the C++ FAQ Lite?
(changed the URL for book excerpts thanks to Chris Young)
- [5.1] What does IMHO mean? (or IMO, IMNSHO, FWIW, OTOH, etc.)?
(added OO)
- [6.10] Is C++ backward compatible with ANSI/ISO C?
(clarified the relationship between f() in C and f(...) in C++ thanks to Stefan Farfeleder)
- [6.12] Where can I get a copy of the ANSI/ISO C++ standard?
(swapped some mixed up links thanks to Randal Leistikow)
- [8.7] What is a handle to an object? Is it a pointer? Is it a reference? Is it a pointer-to-a-pointer? What is it?
(changed pointers-to-references into references-to-pointers thanks to Scott Douglass)
- [13.1] What's the deal with operator overloading?
(added comment about templates and intrinsic types thanks to Phil Hibbs)
- [15.1] Why should I use <iostream> instead of the traditional <cstdio>?
(corrected grammar of first bullet ("better type safety" ==> "more type-safe") thanks to Tristan Miller)
- [15.16] Why can't I open a file in a different directory such as "..\test.dat"?
(added an explanation as to why "/" is better than "\\" thanks to Chris Young)
- [16.2] Can I free() pointers allocated with new? Can I delete pointers allocated with malloc()?
(strengthened)
- [18.11] What do I do if I want a const member function to make an "invisible" change to a data member?
(added a caveat about this being a const Set* const thanks to Steve White)
- [20.4] I have a heterogeneous list of objects, and my code needs to do class-specific things to the objects. Seems like this ought to use dynamic binding but can't figure it out. What should I do?
(fixed typo in a typedef thanks to Salminen Kari; plus various clarifications throughout)
- [20.6] What is a "virtual constructor"?
(added parenthetical recommendation about slicing thanks to Jesse Jones)
- [21.2] Converting Derived* → Base* works OK; why doesn't Derived** → Base** work?
(added a paragraph near the end about using a pointer cast thanks to Steve White)
- [21.6] Is a Circle a kind-of an Ellipse?
(reworded)
- [21.7] Are there other options to the "Circle is/isnot kind-of Ellipse" dilemma?
(added words allowing Circle to be a state of Ellipse rather than a class in itself thanks to Nicholas Leippe)
- [21.8] But I have a Ph.D. in Mathematics, and I'm sure a Circle is a kind of an Ellipse! Does this mean Marshall Cline is stupid? Or that C++ is stupid? Or that OO is stupid?
(softened things up in two spots (thanks to Salminen Kari and Nicholas Leippe) and made it even more in-your-face in other spots (blame the author for this second set of changes I'm the meanie))
- [27.7] What source-file-name convention is best? foo.cpp? foo.C? foo.cc?
(rewrote/wordsmithed thanks to Michael Tiller)
- [27.12] Are there any other sources of coding standards?
(removed a dead link thanks to Phil Hibbs)
- [28.7] What are some best-of-breed C++ programming-by-example guides?
(added Musser's STL book thanks to Xavier Outhier from D2SET scientific and technology non profit association)
- [29.17] Why doesn't my floating-point comparison work?
(added new book references thanks to Alan McKenney)
- [36.2] Where can I get a copy of "STL"?
(removed dead link to Musser's STL site thanks to Xavier Outhier from D2SET scientific and technology non profit association)
- [36.4] Where can I get help on how to use STL?
(removed dead link to Musser's STL site thanks to Xavier Outhier from D2SET scientific and technology non profit association; added link to book section)
- [36.9] Where can I get tons and tons of more information on C++ class libraries?
(added the URL to www.mathtools.net/C++/ thanks to Ophir Herbst; also added the boost.org URL)
- [37.1] Where can I download a free C++ compiler?
(added Digital Mars to the list (thanks Walter!))
- [37.4] How can I decompile an executable program back into C++ source code?
(added caveat at the end re legitimate reasons to decompile)
- [37.5] Where can I get information about the C++ compiler from {Borland, IBM, Microsoft, Sun, etc.}?
(removed Symantec C++ since Symantec's web site says it is "discontinued," thanks to Richard Gill; added an annotation that the Digital Mars compiler is free, thanks to Walter Bright; and added the URL to the Cygwin-compiled version of GCC, thanks to Wouter Demuynck)
- [39.3] Are there any pretty-printers that reformat C++ source code?
(added "Source Styler for C++" thanks to Alison Boyce)
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.12] What updates were made for the 08/01 release?
New features:
13 New FAQs:
24 Changed FAQs:
- [2.1] Where's the closest mirror site to access this document?
(removed the Finland mirror site it wasn't being kept up-to-date)
- [2.5] Where can I download a Chinese translation of the C++ FAQ Lite?
(added the URL for the GB-encoded version thanks to Shen Min for the translation)
- [10.6] Should my constructors use "initialization lists" or "assignment"?
(reworded various things thanks to Stan Brown)
- [10.7] Should you use the this pointer in the constructor?
(wordsmithed thanks to Stan Brown)
- [10.11] What's the "static initialization order fiasco"?
(closed loophole wrt built-in/intrinsic types thanks to Cyril Schmidt)
- [10.12] How do I prevent the "static initialization order fiasco"?
(closed loophole wrt built-in/intrinsic types thanks to Cyril Schmidt)
- [10.14] How do I prevent the "static initialization order fiasco" for my static data members?
(closed loophole wrt built-in/intrinsic types thanks to Cyril Schmidt)
- [10.17] What is the "Named Parameter Idiom"?
(wordsmithed and added last paragraph with inspiration from Stan Brown)
- [14.2] Do friends violate encapsulation?
(added the last paragraph with inspiration from Stan Brown)
- [14.4] What does it mean that "friendship isn't inherited, transitive, or reciprocal"?
(wordsmithed ("nor" vs. "or") thanks to Herbert Gintis)
- [16.5] Do I need to check for NULL after p = new Fred()?
(changed endl to std::endl)
- [16.24] Can you absolutely prevent people from subverting the reference counting mechanism, and if so, should you?
(wordsmithed thanks to Stan Brown)
- [16.25] Can I use a garbage collector in C++?
(added cross-references thanks to Stan Brown)
- [16.26] What are the two kinds of garbage collectors for C++?
(added a URL for Attardi and Flagella's CMM thanks to Markus Laker)
- [19.7] How can I protect derived classes from breaking when I change the internal parts of the base class?
(wordsmithed thanks to Stan Brown)
- [20.6] What is a "virtual constructor"?
(added the paragraph about MS VC++ 6.0's mishandling of Covariant Return Types; thanks to Karthik for pointing this out)
- [28.4] Should I buy one book, or several?
(wordsmithed thanks to Stan Brown)
- [32.1] What do I need to know when mixing C and C++ code?
(fixed a typo thanks to Kumaran Surrendra; added the paragraph on compiling everything, even C-style code, using a C++ compiler thanks to Gary Jenkins)
- [36.2] Where can I get a copy of "STL"?
(added comment about "<string>" thanks to Stan Brown)
- [37.5] Where can I get information about the C++ compiler from {Borland, IBM, Microsoft, Sun, etc.}?
(added URL for Digital Mars C++ thanks to Walter Bright)
- [38.1] How do I convert a value (a number, for example) to a std::string?
(changed <stdio> to <cstdio> thanks to Stan Brown)
- [38.2] How do I convert a std::string to a number?
(changed <stdio> to <cstdio> thanks to Stan Brown)
- [38.6] What should be done with macros that need to paste two tokens together?
(removed ambivalence regarding second layer of indirection when using ## thanks to Joshua Fraser and Ronald Fischer)
- [39.2] Is there a TeX or LaTeX macro that fixes the spacing on "C++"?
(wordsmithed thanks to Stan Brown)
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.13] What updates were made for the 04/01 release?
Global changes:
- Updated the opening page so it lists both the chain of recent
changes as well as the table of recent changes. This improvement is thanks to
a suggestion by John Kewley.
- Moved the main FAQ site to www.parashift.com/c++-faq-lite/. (This was unfortunately
necessary due to a business issue involving AT&T and the previous web hosting
company, Cerf-Net.)
11 New FAQs:
27 Changed FAQs:
- [5.2] How do I get other people to do my homework problem for me?
(added stuff about the evils of asking others to do your homework for you via email)
- [6.12] Where can I get a copy of the ANSI/ISO C++ standard?
(total rewrite; changed several URLs thanks to Brian K. Hamon and Garen Parham)
- [9.3] Do inline functions improve performance?
(explained "code bloat" and also added lots of if's, and's and but's)
- [10.6] Should my constructors use "initialization lists" or "assignment"?
(rewrote)
- [10.7] Should you use the this pointer in the constructor?
(rewrote because of a suggestion from Perry Rapp)
- [10.9] Why can't I initialize my static member data in my constructor's initialization list?
(added a "," in the initialization list thanks to Yaroslav Mironov)
- [14.2] Do friends violate encapsulation?
(made a bit more emphatic)
- [14.4] What does it mean that "friendship isn't inherited, transitive, or reciprocal"?
(added the "not reciprocal" item thanks to Karel Roose)
- [15.9] But shouldn't I always use a printOn() method rather than a friend function?
(fixed a bug thanks to Richard Hector)
- [16.16] But the previous FAQ's code is SOOOO tricky and error prone! Isn't there a simpler way?
(fixed the Star Trek movie number thanks to Chris Sheppard, wordsmithed last paragraph at the suggestion of Perry Rapp)
- [16.21] How do I do simple reference counting?
(moved definition of Fred::create() methods below the definition of class FredPtr)
- [16.26] What are the two kinds of garbage collectors for C++?
(added a URL for Bartlett's collector thanks to Abhishek)
- [17.2] How can I handle a constructor that fails?
(fixed typo ("its" vs. "it's") thanks to Wes Bemont)
- [24.2] How are "private inheritance" and "composition" similar?
(changed the syntax to using Engine::start; and added the sixth distinction thanks to Stan Brown; added the third similarity; added "aggregation" as another synonym; wordsmithed various parts)
- [27.1] What are some good C++ coding standards?
(fixed typo changing "where" to "were" thanks to Robert Marshall)
- [27.11] Which is better: identifier names that_look_like_this or identifier names thatLookLikeThis?
(clarified the last paragraph)
- [27.12] Are there any other sources of coding standards?
(added a new URL thanks to Christopher Lott; added www.arcticlabs.com/codingstandards/ thanks to Richard)
- [28.4] Should I buy one book, or several?
(rewrote; added the "programming by example" category)
- [31.2] What is "virtual data," and how-can / why-would I use it in C++?
(fixed the sentence just before Pros & Cons list (changed StretchableArray to StretchableStack) thanks to Harri Klapuri)
- [32.2] How can I include a standard C header file in my C++ code?
(added the whole section on "compiling C code with a C++ compiler," with inspiration thanks to Sebastian Kapfer)
- [33.6] How do I create and use an array of pointer-to-member-function?
(removed the array size from the declaration of array a, that way there's one less thing to change if someone ever adds another function-pointer to the array thanks to Serge Ansay)
- [34.1] Why should I use container classes rather than simple arrays?
(clarified "local" vs. "non-static local" thanks to Garen Parham)
- [37.1] Where can I download a free C++ compiler?
(changed to a different site since the old URL was dead thanks to Victor R. Volkman)
- [37.5] Where can I get information about the C++ compiler from {Borland, IBM, Microsoft, Sun, etc.}?
(fixed "Semantic" to "Symantec" and "Gary Comeau" to "Greg Comeau" thanks to Scott Tringali; fixed the URL to SGI's compiler thanks to Toon Knapen)
- [37.11] Is there a yacc-able C++ grammar?
(rewrote; added a new grammar/lexer plus a new URL for the old grammar/lexer thanks to Ed Willink)
- [39.2] Is there a TeX or LaTeX macro that fixes the spacing on "C++"?
(added a new LaTeX macro thanks to Bob Kline; rewrote)
- [39.3] Are there any pretty-printers that reformat C++ source code?
(fixed