(Click here for a personal note from Marshall Cline.)
C++ FAQ
/
Section 4
/ FAQ 4.22
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.22] What updates were made for the 04/05 release?
5 New FAQs:
[4.22] What updates were made for the 04/05 release?
(created)
[6.4] What's the big deal with generic programming?
(created thanks to a suggestion from
Ioannis Vranos
)
[6.18] What should I tell people who complain that the word "FAQ" is misleading, that it emphasizes the questions rather than the answers, and that we should all start using a different acronym?
(created)
[17.7] I have too many try blocks; what can I do about it?
(created thanks to a question from
Gustavo A. Baratto
)
[29.21] What other "newbie" guides are there for me?
(created thanks to
Alf Steinbach
for putting together
The Correct C++ Tutorial
)
18 Changed FAQs:
[5.1] What does IMHO mean? (or IMO, IMNSHO, FWIW, OTOH, etc.)?
(added the
Acronym Finder
thanks to
Jarno Lamberg
)
[6.2] Is C++ a perfect language?
(made it clear that "warts" are common to
all
languages and tools)
[6.3] What's the big deal with OO?
Updated!
(rewrote third paragraph to reflect the reality that "as a better C" is sometimes intentional)
[6.7] How long does it take to learn OO/C++?
(wordsmithed)
[6.9] Are
virtual
functions (dynamic binding) central to OO/C++?
(added the last paragraph to clarify relationship between
virtual
functions and generic programming)
[8.8] 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?
(slight wordsmithing thanks to
Steve Fábián
)
[16.22] How do I do simple reference counting?
(fixed a subtle bug in the assignment operator thanks to
Gianni Mariani
)
[16.23] How do I provide reference counting with copy-on-write semantics?
(fixed a subtle bug in the assignment operator thanks to
Gianni Mariani
)
[16.24] How do I provide reference counting with copy-on-write semantics for a hierarchy of classes?
(fixed a subtle bug in the assignment operator thanks to
Gianni Mariani
)
[17.16] How do I throw polymorphically?
(fixed a typo thanks to
Lyle Ziegelmiller
)
[23.6] Okay, but is there a way to
simulate
that behavior
as if
dynamic binding worked on the
this
object within my base class's constructor?
(clarified that this is called the "Dynamic Binding During Initialization Idiom")
[23.7] I'm getting the same mess with destructors: calling a
virtual
on my
this
object from my base class's destructor ends up ignoring the override in the derived class; what's going on?
(fixed the cross-references thanks to
Alf Steinbach
and
Michal Bartoszkiewicz
)
[27.13] Are there any other sources of coding standards?
(added
www.codingstandard.com/
thanks to
Robert Buckley
)
[29.5] What are the criteria for choosing between
short
/
int
/
long
data types?
(added the disclaimer that
<stdint.h>
is not guaranteed to include
int32_t
thanks to
Padmanabhan V. Karthic
)
[29.15] What is this NaN thing?
(added recommendation to use
isnan()
where available thanks to
Stefan Ring
)
[35.19] Why am I getting errors when my template-derived-class uses a member it inherits from its template-base-class?
(fixed a typo thanks to
Neil Falwasser
; while I was in there I rewrote most of it)
[35.20] Can the previous problem hurt me silently? Is it possible that the compiler will silently generate the wrong code?
(added a cross-reference and did some wordsmithing)
[39.13] What special considerations are needed when forward declarations are used with inline functions?
(added the
inline
-below-
Barney
workaround thanks to
Ganesh Sundaram
, plus the nested-classes workaround; rewrote the "workarounds" paragraph)