(Click here for a personal note from Marshall Cline.)
C++ FAQ
/
Section 4
/ FAQ 4.33
Section 4:
4.1
Updates for the 03/12 release?
New!
4.2
Updates for the 11/11 release?
New!
4.3
Updates for the 07/11 release?
4.4
Updates for the 05/11 release?
4.5
Updates for the 03/11 release?
4.6
Updates for the 08/10 release?
4.7
Updates for the 06/10 release?
4.8
Updates for the 05/10 release?
4.9
Updates for the 04/10 release?
4.10
Updates for the 03/10 release?
4.11
Updates for the 01/10 release?
4.12
Updates for the 09/09 release?
4.13
Updates for the 06/09 release?
4.14
Updates for the 01/09 release?
4.15
Updates for the 03/07 release?
4.16
Updates for the 09/06 release?
4.17
Updates for the 03/06 release?
4.18
Updates for the 10/05 release?
4.19
Updates for the 07/05 release?
4.20
Updates for the 06/05 release?
4.21
Updates for the 05/05 release?
4.22
Updates for the 04/05 release?
4.23
Updates for the 03/05 release?
4.24
Updates for the 02/05 release?
4.25
Updates for the 12/04 release?
4.26
Updates for the 06/04 release?
4.27
Updates for the 08/03 release?
4.28
Updates for the 06/03 release?
4.29
Updates for the 05/03 release?
4.30
Updates for the 04/03 release?
4.31
Updates for the 03/03 release?
4.32
Updates for the 02/03 release?
4.33
Updates for the 01/03 release?
4.34
Updates for the 12/02 release?
4.35
Updates for the 09/02 release?
4.36
Updates for the 06/02 release?
4.37
Updates for the 05/02 release?
4.38
Updates for the 04/02 release?
4.39
Updates for the 03/02 release?
4.40
Updates for the 08/01 release?
4.41
Updates for the 04/01 release?
4.42
Updates for the 07/00 release?
4.43
Updates for the 03/00 release?
4.44
Updates for the 01/00 release?
4.45
Updates for the 10/99 release?
4.46
Updates for the 07/99 release?
4.47
Updates for the 06/98 release?
4.48
Updates for the 05/98 release?
4.49
Updates for the 09/97 release?
4.50
Updates for the 01/97 release?
4.51
Updates for the 11/96 release?
4.52
Updates for the 10/96 release?
4.53
Updates for the 09/96 release?
4.54
Updates for the 08/96 release?
4.55
Updates for the 07/96 release?
4.56
Updates for the 06/96 release?
4.57
Updates for the 05/96 release?
4.58
Updates for the 04/96 release?
4.59
Updates for the 03/96 release?
4.60
Updates for the 09/95 release?
4.61
Updates for the 06/95 release?
4.62
Updates for the 04/95 release?
4.63
Updates for the 03/95 release?
4.64
Updates for the 01/95 release?
4.65
Updates for the 12/94 release?
4.66
Updates for the 11/94 release?
4.67
Updates for the 08/94 release?
4.68
Updates for the 08/94 release?
[4.33] What updates were made for the 01/03 release?
8 New FAQs:
[4.33] What updates were made for the 01/03 release?
(created)
[15.3] How can I get
std::cin
to skip invalid input characters?
(created thanks to
Mike Wahler
and Sam Dutton)
[18.9] What does "
const X* x
" mean?
(created)
[18.17] Why am I getting an error converting a
Foo**
→
Foo const**
?
(created thanks to a question from
Stephen Tashiro
)
[34.3] Is the storage for a
std::vector<T>
guaranteed to be contiguous?
(created thanks to
Daveed Vandevoorde
)
[36.3] How do I decide whether to serialize to human-readable ("text") or non-human-readable ("binary") format?
(created)
[36.4] How do I serialize/unserialize simple types like numbers, characters, strings, etc.?
(created)
[36.5] How exactly do I read/write simple types in human-readable ("text") format?
(created)
17 Changed FAQs:
[1.5] Trademarks
(added comment about non-commercial sites being exempt from trademark dilution laws)
[2.1] Where's the closest mirror site to access this document?
(added URL to the mirror site in Israel thanks to
Yechiel Kimchi
)
[6.16] Will I sometimes use any so-called "evil" constructs?
(added "'Think' is not a four-letter word" thanks to
Dave Power
)
[13.14] How can I overload the prefix and postfix forms of operators
++
and
--
?
(fixed typo in title thanks to
Kevin Goodsell
)
[18.8] What does "
const X& x
" mean?
(added the paragraph starting "Note: you'll have to overcome a certain amount of inertia...")
[21.2] Converting
Derived*
→
Base*
works OK; why doesn't
Derived**
→
Base**
work?
(wordsmithed and clarified)
[21.6] Is a
Circle
a kind-of an
Ellipse
?
(strengthened the wording)
[21.7] Are there other options to the "
Circle
is/isnot kind-of
Ellipse
" dilemma?
(strengthened the wording)
[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?
(strengthened the wording)
[29.17] Why doesn't my floating-point comparison work?
(clarified the code)
[33.2] How do I pass a pointer-to-member-function to a signal handler, X event callback, system call that starts a thread/task, etc?
(rewrote to discuss the (typical)
void*
parameter on many system- and GUI-calls thanks to
Ryan Melville
)
[36.2] How do I select the best serialization technique?
(fixed a misspelling ("forth" vs. "fourth") thanks to Charles Brockman; rewrote to include cross-references to
the text/binary decision
and
how to handle simple types
)
[36.6] How exactly do I read/write simple types in non-human-readable ("binary") format?
(fixed a typo (indent vs. intent) and added a few clarifications thanks to
Troy S
)
[36.7] How do I serialize objects that aren't part of an inheritance hierarchy and that don't contain pointers to other objects?
(added description of sample algorithm thanks to Niall Douglas; rewrote everything else as well)
[38.5] Where can I get information about the C++ compiler from {Borland, IBM, Microsoft, Sun, etc.}?
(updated several links thanks to
Thomas Tutone
)
[40.1] How can I generate HTML documentation for my classes? Does C++ have anything similar to
javadoc
?
(added the link to
PERCEPS
)
[40.3] Are there any pretty-printers that reformat C++ source code?
(updated the URL for
Source Styler
)