Cover image for C++ In a Nutshell

Book description

To-the-point, authoritative, no-nonsense solutions have always been a trademark of O'Reilly books. The In a Nutshell books have earned a solid reputation in the field as the well-thumbed references that sit beside the knowledgeable developer's keyboard. C++ in a Nutshell lives up to the In a Nutshell promise. C++ in a Nutshell is a lean, focused reference that offers practical examples for the most important, most often used, aspects of C++. C++ in a Nutshell packs an enormous amount of information on C++ (and the many libraries used with it) in an indispensable quick reference for those who live in a deadline-driven world and need the facts but not the frills. The book's language reference is organized first by topic, followed by an alphabetical reference to the language's keywords, complete with syntax summaries and pointers to the topic references. The library reference is organized by header file, and each library chapter and class declaration presents the classes and types in alphabetical order, for easy lookup. Cross-references link related methods, classes, and other key features. This is an ideal resource for students as well as professional programmers. When you're programming, you need answers to questions about language syntax or parameters required by library routines quickly. What, for example, is the C++ syntax to define an alias for a namespace? Just how do you create and use an iterator to work with the contents of a standard library container? C++ in a Nutshell is a concise desktop reference that answers these questions, putting the full power of this flexible, adaptable (but somewhat difficult to master) language at every C++ programmer's fingertips.

Table of Contents

  1. C++ In a Nutshell
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. A Note Regarding Supplemental Files
    3. Preface
      1. Structure of This Book
      2. About the Examples
      3. Conventions Used in This Book
      4. For More Information
      5. Comments and Questions
      6. Acknowledgments
    4. 1. Language Basics
      1. 1.1. Compilation Steps
      2. 1.2. Tokens
        1. 1.2.1. Identifiers
        2. 1.2.2. Keywords
        3. 1.2.3. Literals
          1. 1.2.3.1. Integer literals
          2. 1.2.3.2. Floating-point literals
          3. 1.2.3.3. Boolean literals
          4. 1.2.3.4. Character literals
          5. 1.2.3.5. String literals
        4. 1.2.4. Symbols
      3. 1.3. Comments
      4. 1.4. Character Sets
      5. 1.5. Alternative Tokens
      6. 1.6. Trigraphs
    5. 2. Declarations
      1. 2.1. Declarations and Definitions
        1. 2.1.1. Definitions
        2. 2.1.2. Ambiguity
      2. 2.2. Scope
      3. 2.3. Name Lookup
        1. 2.3.1. Qualified Name Lookup
        2. 2.3.2. Unqualified Name Lookup
        3. 2.3.3. Argument-Dependent Name Lookup
      4. 2.4. Linkage
        1. 2.4.1. Scope Linkage
        2. 2.4.2. Language Linkage
      5. 2.5. Type Declarations
        1. 2.5.1. Fundamental Types
        2. 2.5.2. Enumerated Types
        3. 2.5.3. POD Types
        4. 2.5.4. typedef Declarations
        5. 2.5.5. Elaborated Type Specifier
      6. 2.6. Object Declarations
        1. 2.6.1. Specifiers
          1. 2.6.1.1. Storage class specifiers
          2. 2.6.1.2. const and volatile qualifiers
          3. 2.6.1.3. Type specifiers
          4. 2.6.1.4. Using specifiers
        2. 2.6.2. Declarators
          1. 2.6.2.1. Arrays
          2. 2.6.2.2. Pointers
          3. 2.6.2.3. Function pointers
          4. 2.6.2.4. Member pointers
          5. 2.6.2.5. References
        3. 2.6.3. Initializers
          1. 2.6.3.1. Function-like initializers
          2. 2.6.3.2. Assignment-like initializers
          3. 2.6.3.3. Initializing arrays
          4. 2.6.3.4. Initializing scalars
        4. 2.6.4. Object Lifetime
      7. 2.7. Namespaces
        1. 2.7.1. Namespace Definitions
        2. 2.7.2. Namespace Aliases
        3. 2.7.3. using Declarations
        4. 2.7.4. using Directives
        5. 2.7.5. How to Use Namespaces
    6. 3. Expressions
      1. 3.1. Lvalues and Rvalues
      2. 3.2. Type Conversions
        1. 3.2.1. Arithmetic Types
        2. 3.2.2. Type Promotion
        3. 3.2.3. Arithmetic Type Conversions
        4. 3.2.4. Implicit Numeric Conversions
        5. 3.2.5. Lvalue Conversions
        6. 3.2.6. Conversion to bool
        7. 3.2.7. Type Casts
      3. 3.3. Constant Expressions
        1. 3.3.1. Integral Constant Expressions
        2. 3.3.2. Null Pointers
      4. 3.4. Expression Evaluation
        1. 3.4.1. Sequence Points
        2. 3.4.2. Order of Evaluation
        3. 3.4.3. Short-Circuit Evaluation
      5. 3.5. Expression Rules
        1. 3.5.1. Primary Expressions
        2. 3.5.2. Postfix Expressions
        3. 3.5.3. Unary Expressions
        4. 3.5.4. Cast Expressions
        5. 3.5.5. Pointer-to-Member Expressions
        6. 3.5.6. Multiplicative Expressions
        7. 3.5.7. Additive Expressions
        8. 3.5.8. Shift Expressions
        9. 3.5.9. Relational Expressions
        10. 3.5.10. Equality Expressions
        11. 3.5.11. Bitwise And Expressions
        12. 3.5.12. Bitwise Exclusive Or Expressions
        13. 3.5.13. Bitwise Inclusive Or Expressions
        14. 3.5.14. Logical And Expressions
        15. 3.5.15. Logical Or Expressions
        16. 3.5.16. Conditional Expressions
        17. 3.5.17. Assignment Expressions
        18. 3.5.18. Comma Expressions
    7. 4. Statements
      1. 4.1. Expression Statements
      2. 4.2. Declarations
        1. 4.2.1. Declaration Statements
        2. 4.2.2. Condition Declarations
      3. 4.3. Compound Statements
      4. 4.4. Selections
        1. 4.4.1. if Statements
        2. 4.4.2. switch Statements
      5. 4.5. Loops
        1. 4.5.1. while Statements
        2. 4.5.2. for Statements
        3. 4.5.3. do Statements
      6. 4.6. Control Statements
      7. 4.7. Handling Exceptions
    8. 5. Functions
      1. 5.1. Function Declarations
        1. 5.1.1. Return Type
        2. 5.1.2. Parameters
        3. 5.1.3. Default Arguments
        4. 5.1.4. Variable Number of Arguments
        5. 5.1.5. cv-qualifiers
        6. 5.1.6. Exception Specifications
      2. 5.2. Function Definitions
        1. 5.2.1. Declarations and Definitions
        2. 5.2.2. Function Types and Signatures
        3. 5.2.3. Function Bodies and try Blocks
      3. 5.3. Function Overloading
        1. 5.3.1. Declaring Overloaded Functions
        2. 5.3.2. Calling Overloaded Functions
        3. 5.3.3. Candidate Functions
          1. 5.3.3.1. Qualified member function call
          2. 5.3.3.2. Unqualified function call
          3. 5.3.3.3. Operator
          4. 5.3.3.4. Function-like initialization
          5. 5.3.3.5. Assignment-like initialization
          6. 5.3.3.6. Conversion initialization
          7. 5.3.3.7. Reference bound to conversion
        4. 5.3.4. Addresses of Overloaded Functions
        5. 5.3.5. Best Overloaded Function
          1. 5.3.5.1. Pruning the candidate list
          2. 5.3.5.2. Choosing the best function
          3. 5.3.5.3. Argument conversion sequences
      4. 5.4. Operator Overloading
        1. 5.4.1. Short-Circuit Operators
        2. 5.4.2. Comma Operator
        3. 5.4.3. Increment and Decrement
        4. 5.4.4. Member Reference
        5. 5.4.5. Function Call
        6. 5.4.6. operator new and operator delete
        7. 5.4.7. Type Conversion
      5. 5.5. The main Function
    9. 6. Classes
      1. 6.1. Class Definitions
        1. 6.1.1. Plain Old Data
        2. 6.1.2. Trivial Classes
        3. 6.1.3. Unions
        4. 6.1.4. Local Classes
      2. 6.2. Data Members
        1. 6.2.1. Data Layout
        2. 6.2.2. Mutable Data Members
        3. 6.2.3. Bit-Fields
        4. 6.2.4. Static Data Members
      3. 6.3. Member Functions
        1. 6.3.1. Pointers-to-Members
        2. 6.3.2. this Pointer
        3. 6.3.3. Static Member Functions
        4. 6.3.4. Constructors
          1. 6.3.4.1. Declaring constructors
          2. 6.3.4.2. Special constructors
          3. 6.3.4.3. Calling constructors
          4. 6.3.4.4. Throwing exceptions during construction
        5. 6.3.5. Destructors
        6. 6.3.6. Implicit Member Functions
          1. 6.3.6.1. Implicit default constructor
          2. 6.3.6.2. Implicit copy constructor
          3. 6.3.6.3. Implicit copy assignment operator
          4. 6.3.6.4. Implicit destructor
      4. 6.4. Inheritance
        1. 6.4.1. Virtual Functions
        2. 6.4.2. Covariant Return Types
        3. 6.4.3. Pure Virtual Functions
        4. 6.4.4. Abstract Classes
        5. 6.4.5. Multiple Inheritance
        6. 6.4.6. Virtual Inheritance
        7. 6.4.7. Polymorphic Constructors and Destructors
      5. 6.5. Access Specifiers
      6. 6.6. Friends
      7. 6.7. Nested Types
    10. 7. Templates
      1. 7.1. Overview of Templates
      2. 7.2. Template Declarations
      3. 7.3. Function Templates
        1. 7.3.1. Function Signatures
        2. 7.3.2. Deducing Argument Types
        3. 7.3.3. Overloading
        4. 7.3.4. Operators
      4. 7.4. Class Templates
        1. 7.4.1. Member Templates
        2. 7.4.2. Friends
      5. 7.5. Specialization
      6. 7.6. Partial Specialization
      7. 7.7. Instantiation
      8. 7.8. Name Lookup
        1. 7.8.1. Dependent Names
        2. 7.8.2. Resolving Names
        3. 7.8.3. Hiding Names
        4. 7.8.4. Using Type Names
      9. 7.9. Tricks with Templates
      10. 7.10. Compiling Templates
    11. 8. Standard Library
      1. 8.1. Overview of the Standard Library
      2. 8.2. C Library Wrappers
      3. 8.3. Wide and Multibyte Characters
        1. 8.3.1. Wide Characters
        2. 8.3.2. Multibyte Characters
        3. 8.3.3. Shift State
      4. 8.4. Traits and Policies
        1. 8.4.1. Character Traits
        2. 8.4.2. Iterator Traits
        3. 8.4.3. Custom Traits
      5. 8.5. Allocators
        1. 8.5.1. Using Allocators
        2. 8.5.2. Custom Allocators
      6. 8.6. Numerics
    12. 9. Input and Output
      1. 9.1. Introduction to I/O Streams
        1. 9.1.1. Custom I/O Operators
        2. 9.1.2. The C Standard I/O Library
        3. 9.1.3. C++ I/O Headers
      2. 9.2. Text I/O
        1. 9.2.1. Formatted Input
        2. 9.2.2. Formatted Output
      3. 9.3. Binary I/O
      4. 9.4. Stream Buffers
      5. 9.5. Manipulators
        1. 9.5.1. Standard Manipulators
        2. 9.5.2. Custom Manipulators
      6. 9.6. Errors and Exceptions
    13. 10. Containers, Iterators, and Algorithms
      1. 10.1. Containers
        1. 10.1.1. Standard Containers
        2. 10.1.2. Container Adapters
        3. 10.1.3. Pseudo-Containers
        4. 10.1.4. Container Requirements
          1. 10.1.4.1. Member types
          2. 10.1.4.2. Member functions
          3. 10.1.4.3. Exceptions
        5. 10.1.5. Using Containers
          1. 10.1.5.1. Value type requirements
          2. 10.1.5.2. Inserting values
          3. 10.1.5.3. Erasing values
          4. 10.1.5.4. Searching
      2. 10.2. Iterators
        1. 10.2.1. Iterator Categories
        2. 10.2.2. Iterator Safety
        3. 10.2.3. Special Iterators
        4. 10.2.4. Custom Iterators
        5. 10.2.5. const_iterators
        6. 10.2.6. Reverse Iterators
      3. 10.3. Algorithms
        1. 10.3.1. How Algorithms Work
        2. 10.3.2. Standard Algorithms
          1. 10.3.2.1. Nonmodifying operations
          2. 10.3.2.2. Comparison
          3. 10.3.2.3. Searching
          4. 10.3.2.4. Binary search
          5. 10.3.2.5. Modifying sequence operations
          6. 10.3.2.6. Sorting
          7. 10.3.2.7. Merging
          8. 10.3.2.8. Set operations
          9. 10.3.2.9. Heap operations
          10. 10.3.2.10. Permutations
        3. 10.3.3. Custom Algorithms
    14. 11. Preprocessor Reference
      1. # operator and directive
      2. ## operator
      3. #define directive
      4. defined operator
      5. #elif directive
      6. #else directive
      7. #endif directive
      8. #error directive
      9. #if directive
      10. #ifdef directive
      11. #ifndef directive
      12. #include directive
      13. #line directive
      14. #pragma directive
      15. #undef directive
    15. 12. Language Reference
      1. and operator
      2. and_eq operator
      3. asm definition
      4. auto storage class
      5. bitand operator
      6. bitor operator
      7. bool type
      8. break statement
      9. case keyword
      10. catch keyword
      11. char type
      12. class keyword
      13. compl operator
      14. const qualifier
      15. const_cast operator
      16. continue statement
      17. declaration
      18. declarator
      19. default keyword
      20. delete operator
      21. do statement
      22. double type
      23. dynamic_cast operator
      24. else keyword
      25. enum keyword
      26. explicit specifier
      27. export specifier
      28. expression
      29. extern storage class
      30. false literal
      31. float type
      32. for statement
      33. friend specifier
      34. function
      35. goto statement
      36. identifier
      37. if statement
      38. inline specifier
      39. int type
      40. long type
      41. mutable specifier
      42. namespace keyword
      43. new operator
      44. not operator
      45. not_eq operator
      46. operator keyword
      47. or operator
      48. or_eq operator
      49. private access specifier
      50. protected access specifier
      51. public access specifier
      52. register storage class
      53. reinterpret_cast operator
      54. return statement
      55. short type
      56. signed specifier
      57. sizeof operator
      58. statement
      59. static storage class
      60. static_cast operator
      61. struct keyword
      62. switch statement
      63. template keyword
      64. this keyword
      65. throw operator
      66. true literal
      67. try statement
      68. type
      69. typedef keyword
      70. typeid operator
      71. typename keyword
      72. unsigned specifier
      73. union keyword
      74. using keyword
      75. virtual specifier
      76. void keyword
      77. volatile qualifier
      78. wchar_t type
      79. while statement
      80. xor operator
      81. xor_eq operator
    16. 13. Library Reference
      1. 13.1. <algorithm>
        1. adjacent_find function template
        2. binary_search function template
        3. copy function template
        4. copy_backward function template
        5. count function template
        6. count_if function template
        7. equal function template
        8. equal_range function template
        9. fill function template
        10. fill_n function template
        11. find function template
        12. find_end function template
        13. find_first_of function template
        14. find_if function template
        15. for_each function template
        16. generate function template
        17. generate_n function template
        18. includes function template
        19. inplace_merge function template
        20. iter_swap function template
        21. lexicographical_compare function template
        22. lower_bound function template
        23. make_heap function template
        24. max function template
        25. max_element function template
        26. merge function template
        27. min function template
        28. min_element function template
        29. mismatch function template
        30. next_permutation function template
        31. nth_element function template
        32. partial_sort function template
        33. partial_sort_copy function template
        34. partition function template
        35. pop_heap function template
        36. prev_permutation function template
        37. push_heap function template
        38. random_shuffle function template
        39. remove function template
        40. remove_copy function template
        41. remove_copy_if function template
        42. remove_if function template
        43. replace function template
        44. replace_copy function template
        45. replace_copy_if function template
        46. replace_if function template
        47. reverse function template
        48. reverse_copy function template
        49. rotate function template
        50. rotate_copy function template
        51. search function template
        52. search_n function template
        53. set_difference function template
        54. set_intersection function template
        55. set_symmetric_difference function template
        56. set_union function template
        57. sort function template
        58. sort_heap function template
        59. stable_partition function template
        60. stable_sort function template
        61. swap function template
        62. swap_ranges function template
        63. transform function template
        64. unique function template
        65. unique_copy function template
        66. upper_bound function template
      2. 13.2. <bitset>
        1. bitset class template
        2. bitset::reference class
        3. operator& function template
        4. operator| function template
        5. operator^ function template
        6. operator >>function template
        7. operator<< function template
      3. 13.3. <cassert>
        1. assert macro
        2. NDEBUG macro
      4. 13.4. <cctype>
        1. isalnum function
        2. isalpha function
        3. iscntrl function
        4. isdigit function
        5. isgraph function
        6. islower function
        7. isprint function
        8. ispunct function
        9. isspace function
        10. isupper function
        11. isxdigit function
        12. tolower function
        13. toupper function
      5. 13.5. <cerrno>
        1. EDOM macro
        2. EILSEQ macro
        3. ERANGE macro
        4. errno macro
      6. 13.6. <cfloat>
        1. DBL_DIG macro
        2. DBL_EPSILON macro
        3. DBL_MANT_DIG macro
        4. DBL_MAX macro
        5. DBL_MAX_10_EXP macro
        6. DBL_MAX_EXP macro
        7. DBL_MIN macro
        8. DBL_MIN_10_EXP macro
        9. DBL_MIN_EXP macro
        10. FLT_DIG macro
        11. FLT_EPSILON macro
        12. FLT_MANT_DIG macro
        13. FLT_MAX macro
        14. FLT_MAX_10_EXP macro
        15. FLT_MAX_EXP macro
        16. FLT_MIN macro
        17. FLT_MIN_10_EXP macro
        18. FLT_MIN_EXP macro
        19. FLT_RADIX macro
        20. FLT_ROUNDS macro
        21. LDBL_DIG macro
        22. LDBL_EPSILON macro
        23. LDBL_MANT_DIG macro
        24. LDBL_MAX macro
        25. LDBL_MAX_10_EXP macro
        26. LDBL_MAX_EXP macro
        27. LDBL_MIN macro
        28. LDBL_MIN_10_EXP macro
        29. LDBL_MIN_EXP macro
      7. 13.7. <ciso646>
      8. 13.8. <climits>
        1. CHAR_BIT macro
        2. CHAR_MAX macro
        3. CHAR_MIN macro
        4. INT_MAX macro
        5. INT_MIN macro
        6. LONG_MAX macro
        7. LONG_MIN macro
        8. MB_LEN_MAX macro
        9. SCHAR_MAX macro
        10. SCHAR_MIN macro
        11. SHRT_MAX macro
        12. SHRT_MIN macro
        13. UCHAR_MAX macro
        14. UINT_MAX macro
        15. ULONG_MAX macro
        16. USHRT_MAX macro
      9. 13.9. <clocale>
        1. LC_ALL macro
        2. LC_COLLATE macro
        3. LC_CTYPE macro
        4. LC_MONETARY macro
        5. LC_NUMERIC macro
        6. LC_TIME macro
        7. lconv structure
        8. localeconv function
        9. NULL macro
        10. setlocale function
      10. 13.10. <cmath>
        1. abs function
        2. acos function
        3. asin function
        4. atan function
        5. atan2 function
        6. ceil function
        7. cos function
        8. cosh function
        9. exp function
        10. fabs function
        11. floor function
        12. fmod function
        13. frexp function
        14. HUGE_VAL macro
        15. ldexp function
        16. log function
        17. log10 function
        18. modf function
        19. pow function
        20. sin function
        21. sinh function
        22. sqrt function
        23. tan function
        24. tanh function
      11. 13.11. <complex>
        1. abs function template
        2. arg function template
        3. complex class template
        4. complex<double> template specialization
        5. complex<float> template specialization
        6. complex<long double> template specialization
        7. conj function template
        8. cos function template
        9. cosh function template
        10. exp function template
        11. imag function template
        12. log function template
        13. log10 function template
        14. norm function template
        15. operator+ function template
        16. operator- function template
        17. operator* function template
        18. operator/ function template
        19. operator== function template
        20. operator!= function template
        21. operator<< function template
        22. operator>> function template
        23. polar function template
        24. pow function template
        25. real function template
        26. sin function template
        27. sinh function template
        28. sqrt function template
        29. tan function template
        30. tanh function template
      12. 13.12. <csetjmp>
        1. jmp_buf type
        2. longjmp function
        3. setjmp function
      13. 13.13. <csignal>
        1. raise function
        2. SIG_DFL macro
        3. SIG_ERR macro
        4. SIG_IGN macro
        5. SIGABRT macro
        6. SIGFPE macro
        7. SIGILL macro
        8. SIGINT macro
        9. SIGSEGV macro
        10. SIGTERM macro
        11. sig_atomic_t type
        12. signal function
      14. 13.14. <cstdarg>
        1. va_arg macro
        2. va_end macro
        3. va_list type
        4. va_start macro
      15. 13.15. <cstddef>
        1. NULL macro
        2. offsetof macro
        3. ptrdiff_t type
        4. size_t type
      16. 13.16. <cstdio>
        1. _IOFBF macro
        2. _IOLBF macro
        3. _IONBF macro
        4. BUFSIZ macro
        5. clearerr function
        6. EOF macro
        7. fclose function
        8. feof function
        9. ferror function
        10. fgetc function
        11. fgetpos function
        12. fgets function
        13. FILE type
        14. FILENAME_MAX macro
        15. fopen function
        16. FOPEN_MAX macro
        17. fpos_t type
        18. fprintf function
        19. fputc function
        20. fputs function
        21. fread function
        22. freopen function
        23. fscanf function
        24. fseek function
        25. fsetpos function
        26. ftell function
        27. fwrite function
        28. getc macro
        29. getchar macro
        30. gets function
        31. L_tmpnam macro
        32. NULL macro
        33. perror function
        34. printf function
        35. putc macro
        36. putchar macro
        37. puts function
        38. remove function
        39. rename function
        40. rewind function
        41. SEEK_CUR macro
        42. SEEK_END macro
        43. SEEK_SET macro
        44. setbuf function
        45. setvbuf function
        46. size_t type
        47. sprintf function
        48. sscanf function
        49. stderr macro
        50. stdin macro
        51. stdout macro
        52. TMP_MAX macro
        53. tmpfile function
        54. tmpnam function
        55. ungetc function
        56. vfprintf function
        57. vprintf function
        58. vsprintf function
      17. 13.17. <cstdlib>
        1. abort function
        2. abs function
        3. atexit function
        4. atof function
        5. atoi function
        6. atol function
        7. bsearch function
        8. calloc function
        9. div function
        10. div_t type
        11. exit function
        12. EXIT_FAILURE macro
        13. EXIT_SUCCESS macro
        14. free function
        15. getenv function
        16. labs function
        17. ldiv function
        18. ldiv_t type
        19. malloc function
        20. MB_CUR_MAX function
        21. mblen function
        22. mbstowcs function
        23. mbtowc function
        24. NULL macro
        25. qsort function
        26. rand function
        27. RAND_MAX macro
        28. realloc function
        29. size_t type
        30. srand function
        31. strtod function
        32. strtol function
        33. strtoul function
        34. system function
        35. wctomb function
        36. wcstombs function
      18. 13.18. <cstring>
        1. memchr function
        2. memcmp function
        3. memcpy function
        4. memmove function
        5. memset function
        6. NULL macro
        7. size_t type
        8. strcat function
        9. strchr function
        10. strcmp function
        11. strcoll function
        12. strcpy function
        13. strcspn function
        14. strerror function
        15. strlen function
        16. strncat function
        17. strncmp function
        18. strncpy function
        19. strpbrk function
        20. strrchr function
        21. strspn function
        22. strstr function
        23. strtok function
        24. strxfrm function
      19. 13.19. <ctime>
        1. asctime function
        2. clock function
        3. clock_t type
        4. CLOCKS_PER_SEC macro
        5. ctime function
        6. difftime function
        7. gmtime function
        8. localtime function
        9. mktime function
        10. NULL macro
        11. size_t type
        12. strftime function
        13. time function
        14. time_t type
        15. tm struct
      20. 13.20. <cwchar>
        1. btowc function
        2. fgetwc function
        3. fgetws function
        4. fputwc function
        5. fputws function
        6. fwide function
        7. fwprintf function
        8. fwscanf function
        9. getwc macro
        10. getwchar macro
        11. mbrlen function
        12. mbrtowc function
        13. mbsinit function
        14. mbsrtowcs function
        15. mbstate_t type
        16. NULL macro
        17. putwc macro
        18. putwchar macro
        19. size_t type
        20. swprintf function
        21. swscanf function
        22. tm struct
        23. ungetwc function
        24. vfwprintf function
        25. vswprintf function
        26. vwprintf function
        27. WCHAR_MAX macro
        28. WCHAR_MIN macro
        29. wcrtomb function
        30. wcscat function
        31. wcschr function
        32. wcscmp function
        33. wcscoll function
        34. wcscpy function
        35. wcscspn function
        36. wcsftime function
        37. wcslen function
        38. wcsncat function
        39. wcsncmp function
        40. wcsncpy function
        41. wcspbrk function
        42. wcsrchr function
        43. wcsrtombs function
        44. wcsspn function
        45. wcsstr function
        46. wcstod function
        47. wcstok function
        48. wcstol function
        49. wcstoul function
        50. wcsxfrm function
        51. wctob function
        52. WEOF macro
        53. wint_t type
        54. wmemchr function
        55. wmemcmp function
        56. wmemcpy function
        57. wmemmove function
        58. wmemset function
        59. wprintf function
        60. wscanf function
      21. 13.21. <cwctype>
        1. iswalnum function
        2. iswalpha function
        3. iswcntrl function
        4. iswctype function
        5. iswdigit function
        6. iswgraph function
        7. iswlower function
        8. iswprint function
        9. iswpunct function
        10. iswspace function
        11. iswupper function
        12. iswxdigit function
        13. towctrans function
        14. towlower function
        15. towupper function
        16. wctrans function
        17. wctrans_t type
        18. wctype function
        19. wctype_t type
        20. WEOF macro
        21. wint_t type
      22. 13.22. <deque>
        1. deque class template
        2. operator== function template
        3. operator!= function template
        4. operator< function template
        5. operator<= function template
        6. operator> function template
        7. operator>= function template
        8. swap function template specialization
      23. 13.23. <exception>
        1. bad_exception class
        2. exception class
        3. set_terminate function
        4. set_unexpected function
        5. terminate function
        6. uncaught_exception function
        7. unexpected function
      24. 13.24. <fstream>
        1. basic_filebuf class template
        2. basic_fstream class template
        3. basic_ifstream class template
        4. basic_ofstream class template
        5. filebuf class
        6. fstream class
        7. ifstream class
        8. ofstream class
        9. wfilebuf class
        10. wfstream class
        11. wifstream class
        12. wofstream class
      25. 13.25. <functional>
        1. binary_function class template
        2. binary_negate class template
        3. bind1st function template
        4. bind2nd function template
        5. binder1st class template
        6. binder2nd class template
        7. const_mem_fun_ref_t class template
        8. const_mem_fun_t class template
        9. const_mem_fun1_ref_t class template
        10. const_mem_fun1_t class template
        11. divides class template
        12. equal_to class template
        13. greater class template
        14. greater_equal class template
        15. less class template
        16. less_equal class template
        17. logical_and class template
        18. logical_not class template
        19. logical_or class template
        20. mem_fun function template
        21. mem_fun_ref function template
        22. mem_fun_ref_t class template
        23. mem_fun_t class template
        24. mem_fun1_ref_t class template
        25. mem_fun1_t class template
        26. minus class template
        27. modulus class template
        28. multiplies class template
        29. negate class template
        30. not1 function template
        31. not2 function template
        32. not_equal_to class template
        33. plus class template
        34. pointer_to_binary_function class template
        35. pointer_to_unary_function class template
        36. ptr_fun function template
        37. unary_negate class template
        38. unary_function class template
      26. 13.26. <iomanip>
        1. resetiosflags function
        2. setbase function
        3. setfill function template
        4. setiosflags function
        5. setprecision function
        6. setw function
      27. 13.27. <ios>
        1. basic_ios class template
        2. boolalpha function
        3. dec function
        4. fixed function
        5. fpos class template
        6. hex function
        7. internal function
        8. ios_base class
        9. ios_base::event type
        10. ios_base::event_callback type
        11. ios_base::failure class
        12. ios_base::fmtflags type
        13. ios_base::Init class
        14. ios_base::iostate type
        15. ios_base::openmode type
        16. ios_base::seekdir type
        17. left function
        18. noboolalpha function
        19. noshowbase function
        20. noshowpoint function
        21. noshowpos function
        22. noskipws function
        23. nounitbuf function
        24. nouppercase function
        25. oct function
        26. right function
        27. scientific function
        28. showbase function
        29. showpoint function
        30. showpos function
        31. skipws function
        32. streamoff type
        33. streamsize type
        34. unitbuf function
        35. uppercase function
      28. 13.28. <iosfwd>
      29. 13.29. <iostream>
        1. cerr variable
        2. cin variable
        3. clog variable
        4. cout variable
        5. wcerr variable
        6. wcin variable
        7. wclog variable
        8. wcout variable
      30. 13.30. <istream>
        1. basic_iostream class template
        2. basic_istream class template
        3. basic_istream::sentry class
        4. iostream class
        5. istream class
        6. operator>> function template
        7. operator>> function template
        8. wiostream class
        9. wistream class
        10. ws function
      31. 13.31. <iterator>
        1. advance function template
        2. back_insert_iterator class template
        3. back_inserter function template
        4. bidirectional_iterator_tag class
        5. distance function template
        6. forward_iterator_tag class
        7. front_insert_iterator class template
        8. front_inserter function template
        9. input_iterator_tag class
        10. insert_iterator class template
        11. inserter function template
        12. istream_iterator class template
        13. istreambuf_iterator class template
        14. iterator class template
        15. iterator_traits class template
        16. iterator_traits<T*> template specialization
        17. iterator_traits<const T*> template specialization
        18. ostream_iterator class template
        19. ostreambuf_iterator class template
        20. output_iterator_tag class
        21. random_access_iterator_tag class
        22. reverse_iterator class template
      32. 13.32. <limits>
        1. float_denorm_style type
        2. float_round_style type
        3. numeric_limits class template
      33. 13.33. <list>
        1. list class template
        2. operator== function template
        3. operator!= function template
        4. operator< function template
        5. operator<= function template
        6. operator> function template
        7. operator>= function template
        8. swap function template
      34. 13.34. <locale>
        1. codecvt class template
        2. codecvt_base class
        3. codecvt_byname class template
        4. collate class template
        5. collate_byname class template
        6. ctype class template
        7. ctype<char> class
        8. ctype_base class
        9. ctype_byname class template
        10. ctype_byname<char> class
        11. has_facet function template
        12. isalnum function template
        13. isalpha function template
        14. iscntrl function template
        15. isdigit function template
        16. isgraph function template
        17. islower function template
        18. isprint function template
        19. ispunct function template
        20. isspace function template
        21. isupper function template
        22. isxdigit function template
        23. locale class
        24. locale::category type
        25. locale::facet class
        26. locale::id class
        27. messages class template
        28. messages_base class
        29. messages_byname class template
        30. money_base class
        31. money_get class template
        32. money_put class template
        33. moneypunct class template
        34. moneypunct_byname class template
        35. num_get class template
        36. num_put class template
        37. numpunct class template
        38. numpunct_byname class template
        39. time_base class
        40. time_get class template
        41. time_get_byname class template
        42. time_put class template
        43. time_put_byname class template
        44. tolower function template
        45. toupper function template
        46. use_facet function template
      35. 13.35. <map>
        1. map class template
        2. multimap class template
        3. operator== function template
        4. operator!= function template
        5. operator< function template
        6. operator<= function template
        7. operator> function template
        8. operator>= function template
        9. swap function template
      36. 13.36. <memory>
        1. allocator class template
        2. allocator<void> class
        3. auto_ptr class template
        4. get_temporary_buffer function template
        5. operator== function template
        6. operator!= function template
        7. raw_storage_iterator class template
        8. return_temporary_buffer function template
        9. uninitialized_copy function template
        10. uninitialized_fill function template
        11. uninitialized_fill_n function template
      37. 13.37. <new>
        1. bad_alloc class
        2. nothrow object
        3. operator delete
        4. operator new
        5. set_new_handler function
      38. 13.38. <numeric>
        1. accumulate function template
        2. adjacent_difference function template
        3. inner_product function template
        4. partial_sum function template
      39. 13.39. <ostream>
        1. basic_ostream class template
        2. basic_ostream::sentry class
        3. endl function template
        4. ends function template
        5. flush function template
        6. operator<< function template
        7. ostream class
        8. wostream class
      40. 13.40. <queue>
        1. operator== function template
        2. operator!= function template
        3. operator< function template
        4. operator<= function template
        5. operator> function template
        6. operator>= function template
        7. priority_queue class template
        8. queue class template
      41. 13.41. <set>
        1. multiset class template
        2. operator== function template
        3. operator!= function template
        4. operator< function template
        5. operator<= function template
        6. operator> function template
        7. operator>= function template
        8. set class template
        9. swap function template
      42. 13.42. <sstream>
        1. basic_istringstream class template
        2. basic_ostringstream class template
        3. basic_stringbuf class template
        4. basic_stringstream class template
        5. istringstream class
        6. ostringstream class
        7. stringbuf class
        8. stringstream class
        9. wistringstream class
        10. wostringstream class
        11. wstringbuf class
        12. wstringstream class
      43. 13.43. <stack>
        1. operator== function template
        2. operator!= function template
        3. operator< function template
        4. operator<= function template
        5. operator> function template
        6. operator>= function template
        7. stack class template
      44. 13.44. <stdexcept>
        1. domain_error class
        2. invalid_argument class
        3. length_error class
        4. logic_error class
        5. out_of_range class
        6. overflow_error class
        7. range_error class
        8. runtime_error class
        9. underflow_error class
      45. 13.45. <streambuf>
        1. basic_streambuf class template
        2. streambuf class
        3. wstreambuf class
      46. 13.46. <string>
        1. basic_string class template
        2. char_traits class template
        3. char_traits<char> class
        4. char_traits<wchar_t> class
        5. getline function template
        6. operator+ function template
        7. operator== function template
        8. operator!= function template
        9. operator< function template
        10. operator<= function template
        11. operator> function template
        12. operator>= function template
        13. operator<< function template
        14. operator>> function template
        15. string class
        16. swap function template
        17. wstring class
      47. 13.47. <strstream>
        1. istrstream class
        2. ostrstream class
        3. strstream class
        4. strstreambuf class
      48. 13.48. <typeinfo>
        1. bad_cast class
        2. bad_typeid class
        3. type_info class
      49. 13.49. <utility>
        1. make_pair function template
        2. operator== function template
        3. operator!= function template
        4. operator< function template
        5. operator<= function template
        6. operator> function template
        7. operator>= function template
        8. pair class template
        9. rel_ops namespace
      50. 13.50. <valarray>
        1. abs function template
        2. acos function template
        3. asin function template
        4. atan function template
        5. atan2 function template
        6. cos function template
        7. cosh function template
        8. exp function template
        9. gslice class
        10. gslice_array class template
        11. indirect_array class template
        12. log function template
        13. log10 function template
        14. mask_array class template
        15. operator* function template
        16. operator/ function template
        17. operator+ function template
        18. operator- function template
        19. operator& function template
        20. operator| function template
        21. operator^ function template
        22. operator>> function template
        23. operator<< function template
        24. operator&& function template
        25. operator|| function template
        26. operator== function template
        27. operator!= function template
        28. operator< function template
        29. operator<= function template
        30. operator> function template
        31. operator>= function template
        32. pow function template
        33. sin function template
        34. sinh function template
        35. slice class
        36. slice_array class template
        37. sqrt function template
        38. tan function template
        39. tanh function template
        40. valarray class template
      51. 13.51. <vector>
        1. operator== function template
        2. operator!= function template
        3. operator< function template
        4. operator<= function template
        5. operator> function template
        6. operator>= function template
        7. swap function template
        8. vector class template
        9. vector<bool> class
        10. vector<bool>::reference class
    17. A. Compiler Extensions
      1. A.1. Borland C++ Builder and Kylix
      2. A.2. GNU Compiler Collection
      3. A.3. Microsoft Visual C++
    18. B. Projects
      1. B.1. Blitz++
      2. B.2. Boost
      3. B.3. STLport
    19. Glossary
    20. About the Author
    21. Colophon
    22. SPECIAL OFFER: Upgrade this ebook with O’Reilly