C++ FAQ Celebrating Twenty-One Years of the C++ FAQ!!!
(Click here for a personal note from Marshall Cline.)
Contents - 40 sections.
12345678910111213141516171819202122232425262728293031323334353637383940 ]
About the Author.
Marshall Cline
cline@parashift.com
Topical index - 5676 links to 3571 topics.
ABCDEFGHIJKLMNOPQRSTUVWXYZ ]
Search the C++ FAQ.
Recent changes - 11 changed FAQs.
In a list, or in a chain, or here: [4.1], [4.2], [6.3], [6.12], [10.3], [15.22], [27.15], [35.13], [35.14], [35.15], [39.6].
Mirrored in 11 countries.
USA, France, Germany, Ireland, Israel, Italy, Poland, Portugal, Spain, Taiwan, U.K..
C++ FAQ topics beginning with 'P'

ABCDEFGHIJKLMNOPQRSTUVWXYZ ]

  • Paging operating-systems: space-vs-speed issues ... [9.3]
  • Pairs: subscript operator, operator[], usually comes in ... [13.9], [18.12]
  • Panacea...NOT! (see also under Exceptions) ... [17.5]
  • Paradigms
  • Parameterized types (see also Templates) ... [35.5]
  • Parameterized types (see also under Templates) ... [35.5]
  • Parameters, named vs. positional ... [10.20]
  • Parameters: passing by reference vs. pointer ... [8.1]
  • Parking lot of Car vs. of Vehicle ... [21.3]
  • Parser for C++ ... [38.11]
  • Part-of (see also Composition) ... [19.2], [24.2]
  • Pascal vs. C++ ... [6.5]
  • Passing array-of-Derived as array-of-Base, evilness of ... [21.4], [21.5]
  • Passing by pointers ... [8.1]
  • Passing by references ... [8.1]
  • Passing parameters
  • Passwords: turning off keyboard "echo" ... [15.18]
  • Pasting tokens via NAME2() macro ... [39.6]
  • Pathetic wannabes ... [9.9]
  • Patterns, design
  • PEBCAC (Acronym) ... [5.1]
  • PEBCAK (Acronym) ... [5.1]
  • PERCEPS ... [40.1]
  • PERCEPS: a javadoc-like tool ... [40.1]
  • Perfect programming languages ... [6.2]
  • Performance (see also under Templates) ... [35.10]
  • Performance and inline ... [9.3]
  • Performance of virtual functions ... [20.4]
  • Performance tradeoffs; Multi-threading and ... [36.12]
  • Permissions to copy this document ... [1]
  • Permutations ... [5.3]
  • Persistence ... [37.5], [37.6], [39.10]
  • Physical Layout different from Logical Interface ... [13.11], [13.12]
  • Placement new ... [11.14], [16.10]
  • Plain Old Data; see POD types ... [26.7]
  • PMFJI (Acronym) ... [5.1]
  • POD types ... [26.7]
  • Pointer casts, evilness of ... [16.25], [18.17], [21.2], [23.12], [27.11], [30.2], [30.3], [37.5]
  • Pointer semantics in reference counting ... [16.22]
  • Pointer to const member function (Const correctness) ... [33.8]
  • Pointer to const member function pointers ... [33.8]
  • Pointer to function
    • Can't convert to void* ... [33.11]
    • Contrast pointer-to-member-function ... [33.1]
    • Converting from pointer-to-member-function ... [33.3]
    • Functionoids and... ... [33.13]
    • Sometimes you declare them unintentionally ... [10.21]
    • Weaknesses compared to functionoids ... [33.13]
  • Pointer to function, Member ... [33]
    • Address of a C++ method ... [33.4]
    • Array of pointer-to-member ... [33.7]
    • Can't convert to void* ... [33.10]
    • Contrast to pointer-to-function ... [33.1]
    • Converting to pointer-to-function ... [33.2], [33.3]
    • Difference between .* and ->* ... [33.9]
    • Passing as pointer-to-function ... [33.2]
    • Pointer to const member function ... [33.8]
    • Use a #define macro to call them ... [33.6]
    • Use a typedef to declare them ... [33.5]
  • Pointer to function, Members ... [33]
  • Pointer to member ... [33]
    • Address of a C++ method ... [33.4]
    • Array of pointer-to-member ... [33.7]
    • Can't convert to void* ... [33.10]
    • Contrast to pointer-to-function ... [33.1]
    • Converting to pointer-to-function ... [33.2], [33.3]
    • Difference between .* and ->* ... [33.9]
    • Passing as pointer-to-function ... [33.2]
    • Pointer to const member function ... [33.8]
    • Use a #define macro to call them ... [33.6]
    • Use a typedef to declare them ... [33.5]
  • Pointer to members ... [33]
  • Pointer, Dangling ... [12.2], [16.25], [34.6]
  • Pointer, Smart ... [13.3], [16.16], [16.22], [17.10], [34.6]
  • Pointer-to-const (Const correctness) ... [18.4], [18.5], [26.13]
  • Pointer-to-const aliasing (Const correctness) ... [18.16]
  • Pointers
  • Pointers contrasted to references ... [8.5], [8.6]
  • Pointers with cycles or non-trivial joins, Serialization and ... [36.11]
  • Pointers with no cycles and no joins, Serialization and ... [36.9]
  • Pointers with no cycles and only "trivial" joins, Serialization and ... [36.10]
  • Points, Sequence ... [39.15], [39.16]
  • Polish translation of this document ... [2.11]
  • Polymorphic Exception Idiom ... [17.16]
  • Polymorphic pointers ... [36.8]
  • Polymorphically throwing (see also under Exceptions) ... [17.16]
  • Polymorphism ... [6.8], [20.2]
  • Pools, memory ... [11.14]
  • Portuguese translation of this document ... [2.12]
  • Posers: smoking out people who pretend to know C++ ... [6.14]
  • Positional parameter vs. named parameters ... [10.20]
  • Postfix operators ... [5.3]
  • Posting code (see also Netiquette) ... [5.8]
  • Posting guidelines for comp.lang.c++ ... [5.4]
  • Power of 2 ... [26.12]
  • Pragmatics ... [6.1]
  • Precedence ... [13.7]
  • Precise use of terminology ... [9.9]
  • Prefer const vs. #define (Const correctness) ... [29.7]
  • Prefix vs. postfix increment operator: operator++ ... [13.14]
  • Prefix vs. postfix increment operator: operator-- ... [13.14]
  • Prefix vs. postfix speed: operator++ ... [13.15]
  • Prefix vs. postfix speed: operator-- ... [13.15]
  • Prepare to die! (see also Destructors) ... [11.1]
  • Preprocessor is evil ... [29.8]
  • Preprocessor, evilness of ... [29.8]
  • Pretenders: smoking out people who pretend to know C++ ... [6.14]
  • Pretty printing
  • Preventing inheritance (i.e., "final classes") ... [23.11]
  • Preventing subversion of reference counting ... [16.25]
  • Prim ... [5.3]
  • Primitive (built-in, primitive) data types ... [26]
  • printOn() method called by operator<< ... [15.9]
  • private inheritance ... [24], [24.1]
    • Access rules ... [24.6]
    • Compared with composition ... [24.2]
    • Criteria for private inheritance vs. composition ... [24.3]
    • Derived* to private Base* conversion (invalid) ... [24.4]
    • private vs. protected inheritance ... [24.5]
  • private keyword ... [7.4], [7.6], [24]
  • private members
  • Problems for homework ... [5.2], [5.3]
  • Procedural integration and inline functions ... [9.2]
  • ProFactor StyleManager (see Pretty printing) ... [40.3]
  • Proficiency in OO/C++: How long does it take ... [6.7]
  • Programming practices, Bad ... [6.15]
  • Programming-by-example books on C++ ... [28.4], [28.7]
  • Promotion of left operand: friend-functions allow ... [14.5]
  • Promotion on the left hand side (see also Operator overloading) ... [13.9]
  • Propagating error information up the stack; see Exceptions ... [17.2]
  • Proper inheritance depends on behavior ... [21.12]
  • protected inheritance ... [24]
    • Access rules ... [24.6]
    • protected vs. private inheritance ... [24.5]
  • protected keyword ... [7.4], [24]
  • protected members
    • Access rules ... [19.5]
    • protected data is not evil! ... [19.8]
    • Public Overloaded Non-Virtuals Call Protected Non-Overloaded Virtuals Idiom ... [23.3]
    • The protected interface ... [19.7]
    • Virtuals ... [23.3], [23.4]
  • Prototype pattern ... [36.8]
  • Proxy Template (see also under Templates) ... [35.22]
  • public inheritance ... [19], [20], [21], [22], [23]
  • Public interface; not enough to determine inheritance ... [21.12]
  • public keyword ... [7.9]
  • public members
    • Access rules ... [19.5]
    • Public Overloaded Non-Virtuals Call Protected Non-Overloaded Virtuals Idiom ... [23.3]
    • The public interface ... [19.7], [19.8]
  • Public Overloaded Non-Virtuals Call Protected Non-Overloaded Virtuals Idiom ... [23.3]
  • Publicly accessible copy constructor (see also under Exceptions) ... [17.17]
  • Pure OO programming languages ... [28.3]
  • Pure virtual functions ... [20.6], [22.3], [22.4]
  • Pure-technical definitions of "good" can be dangerous ... [6.17]
  • Purely technical definitions of "good" are dangerous ... [6.17]
  • Purpose of operator overloading (see also Operator overloading) ... [13.1]
  • put_result_here: how the compiler might implement return-by-value ... [10.9]
  • put_result_here: how the compiler might implement return-by-value on a local variable ... [10.10]