x X NP 650 x X SP 20u P2 x X SP 20u P2 Index , -see comma operator ->* -see pointer to member ! -see logical negation operator operator . -see class member access != -see inequality operator operator # operator 16-8 .* -see pointer to member ## operator 16-8 operator % -see modulus operator ... -see ellipsis %= operator 5-38 / -see division operator & /* */ comment 2-6 -see address-of operator // comment 2-6 -see bitwise AND operator /= operator 5-38 reference declarator 8-8 : && -see logical AND operator field declaration 9-15 &= operator 5-38 label specifier 6-1 () :: -see function call -see scope resolution operator operator function declarator 8-12 scope resolution operator * 3-19 -see indirection operator ::*, pointer to member -see multiplication declarator 8-9 operator < pointer declarator 8-7 -see less than operator *= operator 5-38 template and 14-5 + << -see left shift operator -see addition operator <<= operator 5-38 -see unary plus operator <= -see less than or equal ++ -see increment operator to operator += operator 5-21, 38 = -see assignment operator - == -see equality operator -see subtraction operator > -see greater than operator -see unary minus operator >= -see greater than or -- -see decrement operator equal operator -= operator 5-38 >> -see right shift operator -> -see class member access >>= operator 5-38 operator ?: -see conditional expression operator x X FO 5950 x X NP 650 2 Index DRAFT: 2 December 1996 [] control, member function -see subscripting operator and 12-1 array declarator 8-10 control, overloading \ -see backslash resolution and 10-6 ^ -see bitwise exclusive OR declaration 11-6 operator example, member name 11-6 ^= operator 5-38 member name 11-1 _, underscore in identifier overloading and 13-5 2-8 specifier 11-3/4 {} specifier and friend 11-9 block statement 6-2 specifier and object class declaration 9-1 layout 11-3 class definition 9-1 struct default member 9-2 enum declaration 7-14 union default member 9-2 initializer list 8-25 virtual function 11-12 | -see bitwise inclusive OR access-specifier 10-1 operator accumulate 26-37 |= operator 5-38 acos 26-26, 41 || -see logical OR operator addition operator 5-31 ~ additive operator 5-31 -see destructor additive-expression 5-31 -see one's complement address operator of bit-field 9-16 0 of bit-field restriction -see also zero, null 9-16 null character 2-16 of constructor 12-3 string terminator 2-16 of cv-qualified name 5-20 of member function, unspecified 17-19 A of overloaded function abort 3-33, 6-7, 17-13, 5-21, 13-26 18-19, 26 address-of operator 5-20 abs 26-26, 40/41 adjacent_find 25-13 complex 26-10 adjusting base class member abstract access 11-6 class 10-13 adjustment class, constructor and array parameter 8-13 10-15 function parameter 8-13 class, pointer to 10-14 advance 24-14 abstract-declarator 8-3 aggregate 8-25 access alert 2-13 adjusting base class 25-1 member 11-6 alias 7-20 ambiguity, member 10-5 alignment and friend, class 11-8 of bit-field 9-16 and friend function 11-7 of bit-field, base class 11-4 implementation defined base class member 10-1 9-15 class member 5-9 requirement, control 11-1 implementation-defined control, anonymous union 3-42 9-15 allocation control default 11-1 function 3-35, 5-24, 12-13 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 3 implementation defined and pointer to member type, bit-field 9-15 multi-level mixed pointer new, storage 5-23 4-4 unspecified 9-6, 11-3 anonymous Allocator requirements 20-3 union 9-14 allocator 20-19 union access control 9-15 allowing an exception 15-9 union at namespace scope altermate definition 17-16 9-15 always_noconv, codecvt union, extension to C C-2 22-23 union, global 9-15 ambiguity union restriction 9-15 base class member 10-5 any, bitset 23-59 class conversion 10-8 append, basic_string 21-22 declaration type 7-3 apply, valarray 26-23 declaration versus cast arg, complex 26-10 8-3 argc 3-30 declaration versus argument 1-3, 17-18/19, expression 6-10 19-3 detection, overloaded and name hiding, default function 13-5 8-18 function declaration 8-22 and virtual function, member access 10-5 default 8-19 parentheses and 5-24 binding of default 8-17 resolution, scoping 10-6 conversion 8-13 Amendment 1 17-16 declaration, default 8-16 anachronism C-15 deduction, template 14-51 C function definition evaluation of default C-15 8-17/18 assignment to this C-16 evaluation, order of 5-8 cast of pointer to member evaluation, unspecified C-17 order of 5-8 free store and constructor example of default C-16 8-16/17 free store and destructor list, empty 8-13 C-16 list, variable 8-13 memory management C-16 matching -see overload nonnested class C-17 resolution old style base class overloaded operator and initializer C-16 default 13-29 old style function passing 5-8 definition C-15 passing, reference and overload keyword C-15 8-29 pointer to member reference 5-8 conversion C-17 scope of default 8-18 scope of nested class specification, template C-17 14-49 this and constructor C-16 substitution 16-7 this and destructor C-16 template 14-6 AND to constructor, operator, bitwise 5-36 unspecified 5-27 operator, logical 5-37 type checking 5-8 operator, side effects and type checking of default logical 5-37 8-17 x X FO 5950 x X NP 650 4 Index DRAFT: 2 December 1996 type, unknown 8-13 as-if rule 1-6 argument-dependent lookup asin 26-26, 41 3-16 asm arguments, implementation- declaration 7-31 defined order of implementation-defined evaluation of function 7-31 8-18 assembler 7-31 argv[] 3-30 17-13/D-1 arithmetic assign conversions, usual 5-2 basic_string 21-23 exception 5-1 deque 23-18 exception, undefined 5-2 list 23-23 extension to C single vector 23-32 precision C-1 Assignable requirements pointer 5-32 23-2 type 3-45 assignment unsigned 3-45 and initialization, array overloaded 12-16 bound 8-10 and lvalue 5-38 const 3-47 conversion by 5-39 declaration 8-10 expression 5-38 declarator [] 8-10 extension to C memberwise declarator, C-2 multidimensional 8-11 operator 5-38, 17-9 delete 5-27 operator, copy 12-29 example 8-11 operator, overloaded initialization 8-25 13-29 member 9-6 operator restriction, copy multidimensional 8-12 12-31 new 5-24 reference 8-29 of class objects and to class object 5-39 constructor 12-17 to reference 5-39 of class objects and new to this anachronism C-16 5-25 assignment-expression 5-38 of class objects assignment-operator 5-39 initialization 8-28, at, basic_string 21-21 12-17 atan 26-26, 41 order of execution, atan2 26-26, 41 constructor and 12-16 atexit 3-33, 17-13, 18-13 order of execution, auto 7-3 destructor and 12-11 destruction of 6-7, 9 overloading and pointer initialization 6-9 versus 13-2 object initialization parameter adjustment 8-13 8-21 pointer conversion 4-2 restriction 7-4 size, default 8-11 specifier 7-4 sizeof 5-22 storage duration 3-34 storage of 8-12 automatic initialization type 3-46, 8-13 6-9 array-to-pointer conversion auto_ptr 20-24 4-2 auto_ptr 20-24 arrow operator -see class auto_ptr 20-24 member access operator get 20-25 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 5 operator* 20-25 base operator-> 20-25 class 17-16, 20 operator= 20-25 class 10-1, 3 release 20-26 class access 11-4 ~auto_ptr 20-25 class cast 5-15 ~auto_ptr, auto_ptr 20-25 class constructor order of execution 12-3 class destructor order of B execution 12-10 back_inserter 24-22 class, direct 10-1 back_insert_iterator 24-21 class, indirect 10-1 back_insert_iterator class initialization 24-21 12-17/18 back_insert_iterator class initialization, 24-21 order of 12-20 operator* 24-22 class initializer 8-20 operator++ 24-22 class initializer operator= 24-22 anachronism, old style backslash character 2-13 C-16 backspace 2-13 class member access 10-1 bad, basic_ios 27-26 class member access, bad_alloc 5-26, 18-15, 19 adjusting 11-6 bad_alloc 18-19 class member ambiguity bad_alloc 18-19 10-5 operator= 18-19 class, private 11-4 what 18-19 class, public 11-4 bad_alloc::what, class virtual -see virtual implementation-defined base class 18-19 of integer literal 2-11 bad_cast 5-12, 18-21 base-specifier 10-1 bad_cast 18-21 base-specifier-list 10-1 bad_cast 18-21 basic operator= 18-21 execution character set what 18-22 1-5 bad_cast::what, source character set 2-3 implementation-defined basic_filebuf 27-5, 77 18-22 basic_filebuf 27-78 bad_exception 18-24 basic_filebuf 27-78 bad_exception 18-24 close 27-80, 89 bad_exception 18-24 imbue 27-84 operator= 18-24 is_open 27-79, 89 what 18-24 open 27-79, 89 bad_exception::what, overflow 27-82 implementation-defined pbackfail 27-81 18-24 rdbuf 27-89 bad_typeid 5-13, 18-22 seekoff 27-83 bad_typeid 18-22 seekpos 27-84 bad_typeid 18-22 setbuf 27-83 operator= 18-22 showmanyc 27-81 what 18-22 sync 27-84 bad_typeid::what, uflow 27-81 implementation-defined underflow 27-81 18-22 ~basic_filebuf 27-78 x X FO 5950 x X NP 650 6 Index DRAFT: 2 December 1996 ~basic_filebuf, gcount 27-49 basic_filebuf 27-78 get 27-49 basic_filebuf 27-76 getline 27-50/51 basic_filebuf ignore 27-51 27-76 operator bool() 27-45 basic_fstream 27-5, 88 operator>> 27-46 basic_fstream 27-89 peek 27-52 basic_fstream 27-89 putback 27-52 basic_ifstream 27-5, 84 read 27-52 basic_ifstream 27-85 readsome 27-52 basic_ifstream 27-85 seekg 27-53 close 27-86 sentry 27-44 is_open 27-86 sync 27-53 open 27-86 tellg 27-53 rdbuf 27-86 unget 27-52 basic_ifstream 27-76 ~sentry 27-45 basic_ifstream basic_istreambuf_iterator 27-76 27-5 basic_ios 27-5, 21 basic_istream 27-40 bad 27-26 basic_istream basic_ios 27-23 27-40 basic_ios 27-23 basic_istringstream 27-5, clear 27-25 71 copyfmt 27-24 basic_istringstream 27-72 eof 27-26 basic_istringstream 27-72 exceptions 27-26 rdbuf 27-72 fail 27-26 str 27-72 fill 27-24 basic_istringstream good 27-25 27-66 imbue 27-24 basic_istringstream init 27-44, 57 27-66 narrow 27-24 basic_ofstream 27-5, 86 operator bool 27-25 basic_ofstream 27-87 operator! 27-25 basic_ofstream 27-87 rdbuf 27-24 close 27-87 rdstate 27-25 is_open 27-87 setstate 27-25 open 27-87 tie 27-24 rdbuf 27-87 widen 27-24 basic_ofstream 27-76 basic_ios 27-9 basic_ofstream basic_ios::failure argument, 27-76 implementation-defined basic_ostream 27-5 27-25 basic_ostream 27-57 basic_iostream 27-53 basic_ostream 27-57 basic_iostream 27-54 flush 27-62 basic_iostream 27-54 operator bool() 27-58 ~basic_iostream 27-54 operator<< 27-59 ~basic_iostream, put 27-62 basic_iostream 27-54 seekp 27-58 basic_ios 27-9 sentry 27-57 basic_istream 27-5, 41 tellp 27-58 basic_istream 27-44 write 27-62 basic_istream 27-44 ~basic_ostream 27-57 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 7 ~sentry 27-58 sync 27-36 ~basic_ostream, uflow 27-38 basic_ostream 27-57 underflow 27-37 basic_ostreambuf_iterator xsgetn 27-37 27-5 xsputn 27-39 basic_ostream 27-40 basic_streambuf 27-29 basic_ostream basic_streambuf 27-40 27-29 basic_ostringstream 27-5, basic_string 21-12, 33, 73 27-65 basic_ostringstream 27-73 append 21-22 basic_ostringstream 27-73 assign 21-23 rdbuf 27-74 at 21-21 str 27-74 basic_string 21-16 basic_ostringstream basic_string 21-16 27-66 begin 21-20 basic_ostringstream c_str 21-27 27-66 capacity 21-21 basic_streambuf 27-5, 30 clear 21-21 basic_streambuf 27-32 compare 21-32 basic_streambuf 27-32 copy 21-27 eback 27-34 data 21-28 egptr 27-35 empty 21-21 epptr 27-35 end 21-20 gbump 27-35 erase 21-25 getloc 27-33 find 21-28 gptr 27-34 find_first_not_of 21-30 imbue 27-35 find_first_of 21-29 in_avail 27-33 find_last_not_of 21-31 overflow 27-39 find_last_of 21-30 pbackfail 27-38 getline 21-36 pbase 27-35 insert 21-23 pbump 27-35 max_size 21-20 pptr 27-35 operator!= 21-34 pubimbue 27-33 operator+ 21-33 pubseekoff 27-33 operator+= 21-22 pubseekpos 27-33 operator< 21-35 pubsetbuf 27-33 operator<< 21-36 pubsync 27-33 operator<= 21-35 sbumpc 27-33 operator= 21-19 seekoff 27-36 operator== 21-34 seekpos 27-36 operator> 21-35 setbuf 27-36 operator>= 21-36 setg 27-35 operator>> 21-36 setp 27-35 operator[] 21-21 sgetc 27-34 rbegin 21-20 sgetn 27-34 rend 21-20 showmanyc 27-36, 81 replace 21-25 snextc 27-33 reserve 21-21 sputbackc 27-34 resize 21-20 sputc 27-34 rfind 21-29 sputn 27-34 size 21-20 sungetc 27-34 substr 21-32 x X FO 5950 x X NP 650 8 Index DRAFT: 2 December 1996 swap 21-27, 36 alignment of 9-16 basic_stringbuf 27-5, 66 allocation, implementation basic_stringbuf 27-67 defined 9-15 basic_stringbuf 27-67 declaration 9-15 overflow 27-69 implementation defined pbackfail 27-68 alignment of 9-15 seekoff 27-69 implementation-defined seekpos 27-71 sign of 9-16 str 27-68 layout 9-15 underflow 27-68 restriction 9-16 basic_stringbuf 27-66 restriction, address of basic_stringbuf 9-16 27-66 restriction, pointer to basic_stringstream 27-5, 74 9-16 basic_stringstream 27-75 type of 9-16 basic_stringstream 27-75 unnamed 9-16 rdbuf 27-75 zero width of 9-16 str 27-75 bit-fields, Boolean 9-16 before, type_info 18-21 bitmask type 17-7 begin, basic_string 21-20 23-53 behavior bitset 23-53 default 17-2, 6 any 23-59 implementation-defined bitset 23-56 1-4 bitset 23-56 locale-specific 1-4 count 23-58 reentrancy, flip 23-58 implementation-defined none 23-59 17-20 operator!= 23-59 required 17-2, 6 operator& 23-59 undefined 1-4 operator&= 23-57 unspecified 1-5 operator<< 23-59/60 Ben 13-4 operator<<= 23-57 bidirectional_iterator_tag operator== 23-59 24-13 operator>> 23-59 binary operator>>= 23-57 operator, interpretation operator^ 23-59 of 13-29 operator^= 23-57 operator, overloaded operator| 23-59 13-29 operator|= 23-57 binary_function 20-12 operator~ 23-58 binary_negate 20-14 reset 23-58 binary_search 25-27 set 23-57 bind1st 20-15 size 23-59 bind2nd 20-16 test 23-59 binder1st 20-15 to_string 23-58 binder2nd 20-16 to_ulong 23-58 binding bitwise -see virtual function, AND operator 5-36 dynamic exclusive OR operator of default argument 8-17 5-36 reference 8-30 inclusive OR operator bit-field 9-15 5-36 address of 9-16 operator 5-36 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 9 block header 17-14/16, initialization in 6-9 17-19/D-2 scope -see local scope implementation-defined statement {} 6-2 extension to C-15 structure 6-9 inline function, extension body, function 8-20 to C-1 bool promotion to int 4-5 library, Standard 17-1, bool 8, 11, 17-14/C-17, C-20 increment 5-11, 21 linkage to 7-32 type-specifier 7-11 memberwise assignment, bool() extension to C-2 basic_istream operator memberwise initialization, 27-45 extension to C-2 basic_ostream operator multiple inheritance, 27-58 extension to C-2 boolalpha 27-26 new, extension to C-2 Boolean overloading delete, bit-fields 9-16 extension to C-2 conversion 4-7 overloading, extension to literal 2-16 C-1 type 3-44 overloading new, extension type 3-45 to C-2 boolean-literal 2-16 pointer to member, bound array 8-10 extension to C-2 bound, of array 8-10 protected, extension to bound pointer to member C-2 function, undefined C-17 reference type, extension break statement 6-7/8 to C-1 built-in type -see single precision fundamental type arithmetic, extension to byte 5-22 C-1 string, null-terminated summary, compatibility 17-8 with C-1 summary, compatibility with ISO C-3 C type checking, extension C to C-1 anonymous union, extension user-defined type, to C-2 extension to C-2 class, extension to C-2 void* pointer type const, extension to C-1 extension to C-2 dangerous extension to volatile, extension to C-15 C-2 declaration statement, call extension to C-2 -see also function call, delete, extension to C-2 member function call, destructor, extension to overloaded function call, C-2 virtual function call expression evaluation, by reference 5-8 difference from C-1 by value 5-8 extension to C-1/2 operator function 13-28 function definition pseudo destructor 5-9 anachronism C-15 calloc 20-26/C-22 x X FO 5950 x X NP 650 10 Index DRAFT: 2 December 1996 candidate functions 14-36 to const object, undefined capacity 7-10 basic_string 21-21 to string literal, vector 23-33 undefined 2-15 carriage return 2-13 char case label 6-1, 4 implementation-defined 17-13, 19-5 sign of 3-44 cast literal, implementation- ambiguity, declaration defined value of 2-14 versus 8-3 type 3-44 base class 5-15 type, signed 3-44 const 5-18 type specifier 7-11 derived class 5-15 type, unsigned 3-44 dynamic 5-11, 18-21 character integer to pointer 5-16 array initialization 8-28 lvalue 5-14, 16 decimal-point 17-8 of pointer to member literal 2-13 anachronism C-17 literal, type of 2-13 operator 5-20, 29, 8-2 multibyte 1-4 pointer to function 5-17 set, basic execution 1-5 pointer to integer 5-16 set, basic source 2-3 pointer to member 5-16/17 signed 3-44 reference 5-15, 17 string 2-15 reinterpret 5-16 type 3-44 reinterpret_cast, lvalue underscore 17-15 5-16 character-literal 2-12 reinterpret_cast, char_traits reference 5-17 eos 21-28 static 5-14 eq 21-28/31 static_cast, lvalue 5-14 length 21-18/19, 22/24, static_cast, reference 26, 28/31, 33/34 5-15 checking to incomplete class 5-29 point of error 14-24 undefined pointer to syntax 14-24 function 5-17 cin 27-7 cast-expression 5-29 C-21 casting 5-8, 29 class 3-46, 9-1 catch 15-1 abstract 10-13 category, locale 22-5 access and friend 11-8 c-char 2-12 anachronism, nonnested c-char-sequence 2-12 C-17 21-38 and type 9-1 ceil 26-41 base 17-16, 20 cerr 27-7 base -see base class 17-15, 19-5 cast to incomplete 5-29 18-12 constructor and abstract C++ 10-15 Standard library 17-1, conversion 12-6 16, 18, 20/21 conversion ambiguity 10-8 Standard library exception declaration, forward 9-3 specifications 17-21 declaration {} 9-1 headers 17-11 definition 9-1, 5 change definition 3-3 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 11 definition, empty 9-1 objects and new, array of definition example 9-6 5-25 definition name hiding objects initialization, 9-2 array of 8-28, 12-17 definition, scope of 9-2 pointer to abstract 10-14 definition {} 9-1 polymorphic 10-8 derived 17-20 scope 3-10 derived -see derived class scope of enumerator 7-16 extension to C C-2 sizeof, empty 9-1 gslice 26-29 template 23-55 linkage of 3-27 template partial linkage specification specializations 14-17 7-32 template specialization local -see local class 14-6 member -see also member unnamed 7-8 member access 5-9 class member access operator type specifier 9-1 5-9 versus struct 9-2 member declaration 9-4 versus union 9-2 member function 9-7 classic, locale 22-11 member initialization classic_table, ctype 8-23 22-20 member semantics 5-9 class-key 9-1 member, static 3-34 class-name 9-1 member storage duration class-specifier 9-1 3-37 clear member syntax 5-9 basic_ios 27-25 name 8-2 basic_string 21-21 name as type definition 18-11, 23-56/D-7 9-2 17-8, 22-60/C-21 name declaration 3-2 clog 27-7 name, elaborated 7-13, close 9-3/4 basic_filebuf 27-80, 89 name, point of declaration basic_ifstream 27-86 9-4 basic_ofstream 27-87 name, scope of 9-2 messages 22-54 name, typedef 7-8, 9-4 26-39 nested -see nested class codecvt 22-21 object, assignment to always_noconv 22-23 5-39 do_always_noconv 22-25 object, const 3-47 do_encoding 22-24 object copy 12-26 do_in 22-23 object copy -see also copy do_length 22-25 constructor do_max_length 22-25 object initialization do_out 22-23 8-25, 12-16 do_unshift 22-24 object initialization -see encoding 22-23 also constructor in 22-22 object layout 9-6, 10-3 length 22-23 object, member 9-6 max_length 22-23 object, operations on 9-1 out 22-22 object, sizeof 5-22 unshift 22-22 objects and constructor, codecvt_byname 22-25 array of 12-17 x X FO 5950 x X NP 650 12 Index DRAFT: 2 December 1996 collate 22-40 operator+= 26-7/8 compare 22-40 operator- 26-8 do_compare 22-41 operator-= 26-7/8 do_hash 22-41 operator/= 26-8 do_transform 22-41 operator<< 26-9 hash 22-41 operator== 26-9 transform 22-40 operator>> 26-9 collate_byname 22-41 polar 26-10 comma pow 26-11 operator 5-39 real 26-10 operator, side effects and sin 26-11 5-39 sinh 26-11 comment 2-5 sqrt 26-11 /* */ 2-6 tan 26-11 // 2-6 tanh 26-11 compare component 17-2 basic_string 21-32 compound collate 22-40 statement 6-2 comparison type 3-46 function 17-2 compound-statement 6-2 pointer 5-34/35 concatenation pointer to function 5-34 string 2-15 undefined pointer 5-32, undefined string literal 35 2-15 unspecified pointer 5-35 condition 6-2 void* pointer 5-34 conditional compatibility expression operator 5-37 with C summary C-1 inclusion 16-3 with ISO C summary C-3 conditional-expression, compilation, separate 2-1 throw-expression in 5-38 compiler control line -see conditions, rules for 6-3 preprocessing directive conj, complex 26-10 complete object 1-6 consistency completely defined object example, linkage 7-4 type 9-5 linkage 7-4 26-3 linkage specification complex 26-5 7-33 abs 26-10 type declaration 3-30 arg 26-10 const complex 26-7 cast 5-18 complex 26-7 member initialization conj 26-10 12-19 cos 26-10 *const example 8-7 cosh 26-10 const 3-47 exp 26-11 array 3-47 imag 26-10 class object 3-47 log 26-11 constructor and 9-11, log10 26-11 12-2 norm 26-10 destructor and 9-11, operator!= 26-9 12-10 operator* 26-9 example 8-7 operator*= 26-7/8 extension to C C-1 operator+ 26-8 initialization 7-9, 8-25 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 13 linkage of 3-27, 7-4 inheritance of 12-2 member function 9-11 non-trivial 12-2 object, undefined change order of execution, base to 7-10 class 12-3 overloading and 13-3 order of execution, member reference 8-31 12-3 type 7-9 restriction 12-2/3 constant 2-10, 5-3 restriction, copy 12-28 enumeration 7-14 type of 12-3 expression 5-40 union 9-14 expression, pointer to unspecified argument to member 5-20 5-27 initializer 9-5 container requirements 23-1 null pointer 4-6 continue pointer declaration 8-7 in for statement 6-7 pointer example 8-7 statement 6-7/8 constant-expression 5-40 control line -see constant-initializer 9-5 preprocessing directive constructor 12-1 convention 17-6 address of 12-3 conversion anachronism, free store Boolean 4-7 and C-16 ambiguity, class 10-8 anachronism, this and anachronism, pointer to C-16 member C-17 and abstract class 10-15 and name hiding, user- and array order of defined 12-9 execution 12-16 argument 8-13 and const 9-11, 12-2 array pointer 4-2 and initialization 12-16 array-to-pointer 4-2 and initialization example by assignment 5-39 12-16 by constructor 12-6 and member function 12-3 class 12-6 and new 5-25 derived-to-base 13-19 and new, unspecified 5-27 explicit type -see casting and return 6-8 floating point 4-5 and static objects order floating-integral 4-6 of execution 12-17 function -see also user- and virtual function call defined conversion 12-24 function-to-pointer 4-3 and volatile 9-11, 12-2 implementation defined array of class objects and pointer integer 5-16 12-17 implementation-defined call, explicit 12-3 floating point 4-5 conversion by 12-6 implicit 4-1, 12-6 conversion by -see also implicit user-defined user-defined conversion 12-8 copy 12-3/4, 26, 17-9 inheritance of user- default -see default defined 12-8 constructor integer 4-5 definition 8-20 lvalue-to-rvalue 4-2 example 12-3 operator 12-7 exception handling 15-4 overload resolution and for temporary 12-4 13-17 x X FO 5950 x X NP 650 14 Index DRAFT: 2 December 1996 overload resolution and bitset 23-58 pointer 13-27 count_if 25-13 pointer 4-6 cout 27-7 pointer to function 4-3 __cplusplus 16-13 pointer to member 4-6 17-15, 18-27 pointer to member void* cshift, valarray 26-23 4-7 18-27 rank 13-21 8-13, 17-15, return type 6-8 18-26 reverse_iterator 24-17 5-22, 32, sequence, implicit 13-18 18-2/C-21 sequence, standard 4-1 27-6/8, 76, 80/81, signed unsigned integer 83, 27-89/C-21 4-5 3-31, 33, 17-13, standard 4-1 18-12, 28, 20-26, 21-39, to enumeration type 5-15 25-34, 26-40/C-21 to enumeration type, c_str, basic_string 21-27 static_cast, 5-15 17-8, 20-26, to rvalue, lvalue 4-2 21-38/D-7, D-15/C-21 type of 12-7 18-27, 20-27, undefined floating point 22-3/C-21 4-5 ctor-initializer 12-17 user-defined 12-6/7 ctype 22-13 virtual user-defined 12-8 do_is 22-15 conversion-function-id 12-7 do_narrow 22-16 conversions do_scan_is 22-15 qualification 4-3 do_scan_not 22-15 usual arithmetic 5-2 do_tolower 22-16 copy do_toupper 22-15 assignment operator 12-29 do_widen 22-16 assignment operator 12-26 is 22-14 assignment operator, narrow 22-15 implicitly-declared 12-30 scan_is 22-14 assignment operator scan_not 22-14 restriction 12-31 tolower 22-15 class object 12-26 toupper 22-14 constructor 12-3/4, 26, widen 22-15 17-9 ctype_byname 22-17 constructor, implicitly- ctype_byname 22-21 declared 12-27 ctype constructor restriction classic_table 22-20 12-28 ctype 22-19 copy 25-16 ctype 22-19 basic_string 21-27 is 22-19 copy_backward 25-16 narrow 22-20 CopyConstructible scan_is 22-19 requirements 20-2 scan_not 22-19 copyfmt, basic_ios 27-24 table 22-20 cos 26-26, 41 tolower 22-19 complex 26-10 toupper 22-19 cosh 26-26, 41 widen 22-20 complex 26-10 ~ctype 22-19 count 25-13 ~ctype, ctype 22-19 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 15 D-1 example, function 8-14 cv-qualified name, address extern 3-2 of 5-20 extern reference 8-29 cv-qualifier 3-47 forward 7-5 cv-qualifier 8-2 forward class 9-3 17-9, 16, function 3-2, 8-12 21-39/C-21 hiding -see name hiding 17-16, 21-38 in for, scope of 6-7 in for statement 6-7 in switch statement 6-4 D matching, overloaded DAG function 13-4 multiple inheritance 10-4 member 9-4 nonvirtual base class multiple 3-30 10-4 name 3-2 virtual base class 10-4 name, point of 3-7 dangerous extension to C overloaded 13-1 C-15 overloaded name and friend data 11-9 member -see member parameter 8-13 member, static 9-12 parentheses in 8-3, 7 data, basic_string 21-28 pointer 8-7 date_order, time_get 22-43 reference 8-8 deallocation register 7-4 -see delete specifier 7-3 function 3-36, 5-28, statement 6-8 12-13 statement, extension to C dec 27-28, 60 C-2 decimal literal 2-11 static member 3-2 decimal-literal 2-10 storage class 7-3 decimal-point character type 8-5 17-8 type ambiguity 7-3 decimal_point, numpunct typedef 3-2 22-38 typedef as type 7-7 declaration 3-1/2, 7-1 versus cast ambiguity 8-3 :, field 9-15 versus expression access 11-6 ambiguity 6-10 ambiguity, function 8-22 {}, class 9-1 array 8-10 {}, enum 7-14 as definition 7-2 declaration 7-1 asm 7-31 declaration-statement 6-8 bit-field 9-15 declarative region 3-1, 6 class member 9-4 declarator 7-2, 8-1 class name 3-2 &, reference 8-8 class name, point of 9-4 (), function 8-12 consistency, type 3-30 *, pointer 8-7 constant pointer 8-7 ::*, pointer to member default argument 8-16 8-9 definition versus 3-2 [], array 8-10 ellipsis in function 5-8, example 8-3 8-13 initializer, temporary and enumerator point of 3-7 12-4 example 3-2, 8-15 meaning of 8-5 x X FO 5950 x X NP 650 16 Index DRAFT: 2 December 1996 multidimensional array empty class 9-1 8-11 enumerator 3-3 declarator 8-2 enumerator point of 7-14 declarator-id 8-2 example 3-2 decl-specifier 7-3 example, function 8-20 decrement example, nested class operator 5-11, 20, 22 9-17, 11-13 operator, overloaded function 3-3 13-31 function 8-20 deduction, template argument local class 9-18 14-51 member function 9-7 default name hiding, class 9-2 access control 11-1 namespace 7-16 argument and name hiding nested class 9-16 8-18 object 3-3 argument and virtual of template 14-1 function 8-19 pure virtual function argument, binding of 8-17 10-13 argument declaration 8-16 scope, macro 16-9 argument, evaluation of scope of class 9-2 8-17/18 static member 9-13 argument, example of versus declaration 3-2 8-16/17 virtual function 10-11 argument, overload {}, class 9-1 resolution and 13-16 definitions, argument, overloaded implementation-generated operator and 13-29 3-2 argument, scope of 8-18 delete argument, type checking of array 5-27 8-17 object 5-27 array size 8-11 delete 3-34, 5-27/28, 12-13 behavior 17-2, 6 destructor and 5-28, constructor 12-2 12-11 constructor and example 12-14 initialization 12-16 example, destructor and constructor and new 5-25 12-14 destructor 12-10 example, scope of 12-14 initialization 8-21 extension to C C-2 initializers, overloading extension to C overloading and 13-3 C-2 member access, struct 9-2 operator 17-16, 18-16, member access, union 9-2 20-26 default label 6-1, 4 overloading and 3-37 default-initialization 8-22 type of 12-14 #define 16-6 undefined 5-28 definition 3-2, 17-2 delete[], operator 17-16, altermate 17-16 18-17 and initialization 7-2 deleted object, undefined class 3-3 3-37 class 9-1, 5 delete-expression 5-27 class name as type 9-2 dependent name 14-29, 35 constructor 8-20 deprecated features 5-11, declaration as 7-2 21 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 17 23-12 call, pseudo 5-9 deque 23-15 default 12-10 assign 23-18 exception handling 15-4 erase 23-19 extension to C C-2 insert 23-19 for temporary 12-4 resize 23-19 non-trivial 12-10 dereferencing -see also order of execution 12-10 indirection order of execution, base derivation -see inheritance class 12-10 derived order of execution, member class 17-20 12-10 class 10-1 program termination and class cast 5-15 12-11 class example 10-2 pure virtual 12-11 class, most 1-6 restriction 12-10/11 class, overloading and static object 3-33 13-4 union 9-14 object, most 1-6 virtual 12-11 derived-to-base conversion diagnostic message 1-3 13-19 difference from C expression destination type 8-24 evaluation C-1 destruction digit 2-8 of auto 6-7, 9 digit-sequence 2-14 of local static 6-10 digraph 2-5 of local variable 6-7, 9 direct of temporary 12-4 base class 10-1 of temporary, order of binding of reference 8-30 12-4 direct-abstract-declarator destructor 12-10, 17-9 8-3 anachronism, free store direct-declarator 8-2 and C-16 directed acyclic graph -see anachronism, this and DAG C-16 directive and array order of error 16-12 execution 12-11 null 16-12 and const 9-11, 12-10 pragma 16-12 and delete 5-28, 12-11 preprocessing 16-1 and delete example 12-14 direct-new-declarator 5-23 and exception, explicit distance 24-15 12-13 distinct string 2-15 and exit from scope 6-7 div 26-40 and fundamental type divides 20-12 12-12 division and member function 12-11 by zero, undefined 5-2, and placement of object 31 12-12 implementation defined and virtual function call 5-31 12-24 operator 5-31 and volatile 9-11, 12-10 djacent_difference 26-39 call example, explicit do statement 6-4, 6 12-12 do_always_noconv, codecvt call, explicit 12-11 22-25 call, implicit 12-11 do_close, messages 22-55 x X FO 5950 x X NP 650 18 Index DRAFT: 2 December 1996 do_compare, collate 22-41 do_scan_is, ctype 22-15 do_curr_symbol, moneypunct do_scan_not, ctype 22-15 22-52 dot operator -see class do_date_order, time_get member access operator 22-44 do_thousands_sep do_decimal_point moneypunct 22-52 moneypunct 22-52 numpunct 22-39 numpunct 22-39 do_tolower, ctype 22-16 do_encoding, codecvt 22-24 do_toupper, ctype 22-15 do_falsename, numpunct do_transform, collate 22-41 do_truename 22-39 do_truename do_falsename, do_frac_digits, moneypunct numpunct 22-39 22-53 double quote 2-13 do_get double messages 22-54/55 literal 2-15 money_get 22-48 type 3-45 num_get 22-28 type specifier 7-11 do_get_date, time_get 22-44 do_unshift, codecvt 22-24 do_get_monthname, time_get do_widen, ctype 22-16 22-44 dynamic do_get_time, time_get 22-44 binding -see virtual do_get_weekday, time_get function 22-44 cast 5-11, 18-21 do_get_year, time_get 22-45 initialization 3-31 do_grouping storage duration 3-34, moneypunct 22-52 5-23 numpunct 22-39 type 1-3 do_hash, collate 22-41 do_in, codecvt 22-23 do_is, ctype 22-15 E do_length, codecvt 22-25 E suffix 2-14 domain_error 19-2 eback, basic_streambuf domain_error 19-2 27-34 domain_error 19-2 effect, side 1-7 do_max_length, codecvt egptr, basic_streambuf 22-25 27-35 dominance, virtual base elaborated class 10-7 class name 7-13, 9-3/4 do_narrow, ctype 22-16 enum name 7-13 do_negative_sign, moneypunct type specifier -see 22-52 elaborated class name do_neg_format, moneypunct elaborated-type-specifier 22-53 7-12 do_open, messages 22-55 #elif 16-3 do_out, codecvt 22-23 elimination of temporary do_pos_format, moneypunct 12-3 22-53 ellipsis do_positive_sign, moneypunct example 8-13 22-52 in function declaration do_put 5-8, 8-13 money_put 22-50 overload resolution and num_put 22-33 13-16 time_put 22-46 #else 16-4 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 19 else 6-2 equality-expression 5-35 empty equal_range 25-26 argument list 8-13 equal_to 20-13 class definition 9-1 equivalence class sizeof 9-1 template type 14-10 statement 6-1 type 7-7, 9-2 empty 24-13 equivalent basic_string 21-21 parameter declarations encoding, multibyte 2-16 13-2 encoding, codecvt 22-23 parameter declarations, end, basic_string 21-20 overloading and 13-2 #endif 16-4 erase endl 27-59, 62 basic_string 21-25 end-of-file 23-60 deque 23-19 ends 27-63 list 23-24 entity 3-1 vector 23-34 enum name, typedef 7-8 D-1 enum 3-46 error declaration {} 7-14 checking, point of 14-24 name, elaborated 7-13 directive 16-12 overloading and 13-2 #error 16-12 type of 7-14/15 escape type specifier 7-12 character -see backslash enumerated type 3-46, 17-7 sequence 2-13 enumeration 7-14 sequence, undefined 2-13 constant 7-14 escape-sequence 2-12 example 7-15 evaluation linkage of 3-28 difference from C type, conversion to 5-15 expression C-1 type, static_cast, new, unspecified order of conversion to 5-15 5-27 underlying type 7-15 of default argument enumerator 8-17/18 class, scope of 7-16 of expression, order of definition 3-3 1-9 member 7-16 order of argument 5-8 point of declaration 3-7 unspecified order of point of definition 7-14 3-32, 5-1 redefinition 7-14 unspecified order of restriction 7-14 argument 5-8 value of 7-14 unspecified order of enumerator 7-14 function call 5-8 environment, program 3-30 example eof, basic_ios 27-26 *const 8-7 eos, char_traits 21-28 array 8-11 epptr, basic_streambuf class definition 9-6 27-35 const 8-7 eq, char_traits 21-28/31 constant pointer 8-7 equal 25-14 constructor 12-3 istreambuf_iterator 24-31 constructor and equality operator 5-35 initialization 12-16 EqualityComparable declaration 3-2, 8-15 requirements 20-1 declarator 8-3 x X FO 5950 x X NP 650 20 Index DRAFT: 2 December 1996 definition 3-2 handling 15-1 delete 12-14 handling constructor 15-4 derived class 10-2 handling destructor 15-4 destructor and delete specifications, C++ 12-14 Standard library 17-21 ellipsis 8-13 specifications, Standard C enumeration 7-15 library 17-21 explicit destructor call specifications, 12-12 implementation-defined explicit qualification 17-21 10-6 throwing 15-2 friend 9-3 types, implementation- friend function 11-7 defined 17-21 function declaration 8-14 undefined arithmetic 5-2 function definition 8-20 18-22 linkage consistency 7-4 exception local class 9-18 exception 18-23 member function 9-9, 11-7 exception 18-23 member name access 11-6 operator= 18-23 nested class 9-16 what 18-24 nested class definition ~exception 18-24 9-17, 11-13 ~exception, exception 18-24 nested class forward exception-declaration 15-1 declaration 9-18 exceptions, basic_ios 27-26 nested type name 9-19 exception-specification of default argument 15-8 8-16/17 exception::what message, of incomplete type 3-43 implementation-defined of overloading 13-1 18-24 pointer to member 8-9 execution character set, pure virtual function basic 1-5 10-13 exit from scope, destructor scope of delete 12-14 and 6-7 scope resolution operator exit 3-31, 33, 6-7, 17-13, 10-6 18-13, 19 static member 9-13 exp 26-26, 41 subscripting 8-11 complex 26-11 type name 8-3 explanation, subscripting typedef 7-7 8-11 unnamed parameter 8-21 explicit variable parameter list constructor call 12-3 8-13 destructor and exception virtual function 10-10/11 12-13 exception destructor call 12-11 allowing an 15-9 destructor call example and new 5-26 12-12 arithmetic 5-1 instantiation 14-42 declaration scope 3-8 qualification 3-18 explicit destructor and qualification example 12-13 10-6 handler 15-5, 17-21 specialization, template handler, incomplete type 14-44 in 15-5 type conversion -see casting x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 21 explicit specifier 7-7 to C single precision explicit-specialization arithmetic C-1 14-44 to C type checking C-1 exponent-part 2-14 to C user-defined type export 14-1 C-2 expression 5-1 to C, void* pointer type ambiguity, declaration C-2 versus 6-10 to C volatile C-2 assignment 5-38 extern 7-3 constant 5-40 "C" 17-14/16 evaluation, difference "C++" 17-14/16 from C C-1 declaration 3-2 order of evaluation of linkage of 7-4 1-9 linkage specification parenthesized 5-4 7-31 pointer to member constant reference declaration 5-20 8-29 postfix 5-5 restriction 7-4 primary 5-3 external linkage 3-27, reference 5-2 17-14/16 statement 6-1 unary 5-20 expression 5-39 F expression-list 5-6 F suffix 2-15 expression-statement 6-1 f suffix 2-15 extension facet, locale 22-8 to C C-1/2 fail, basic_ios 27-26 to C anonymous union C-2 failed, ostreambuf_iterator to C class C-2 24-33 to C const C-1 failure, ios_base::failure to C, dangerous C-15 27-12 to C declaration statement falsename, numpunct truename C-2 22-38 to C delete C-2 fclose 27-81 to C destructor C-2 field declaration : 9-15 to C, implementation- file 2-1 defined C-15 scope 17-15 to C inline function C-1 source 2-1, 17-13, 16 to C memberwise assignment filebuf 27-5, 76 C-2 implementation-defined to C memberwise 27-84 initialization C-2 fill 25-18 to C multiple inheritance basic_ios 27-24 C-2 gslice_array 26-33 to C new C-2 indirect_array 26-36 to C overloading C-1 mask_array 26-34 to C overloading delete slice_array 26-29 C-2 fill_n 25-18 to C overloading new C-2 final overrider 10-8 to C pointer to member find 25-12 C-2 basic_string 21-28 to C protected C-2 find_end 25-12 to C reference type C-1 find_first_not_of, basic_string 21-30 x X FO 5950 x X NP 650 22 Index DRAFT: 2 December 1996 find_first_of 25-13 for_each 25-12 basic_string 21-29 form feed 2-13 find_if 25-12 formal find_last_not_of, argument -see also basic_string 21-31 parameter find_last_of, basic_string argument -see parameter 21-30 forward fIoctal-digit 2-11 class declaration 9-3 fixed 27-28 declaration 7-5 flags, ios_base 22-12/13, declaration example, 27-16 nested class 9-18 flip, bitset 23-58 forward_iterator_tag 24-13 float fpos 27-9, 19/20 literal 2-15 fpos 27-19 type 3-45 fpos 27-19 type specifier 7-11 state 27-20 D-1 fractional-constant 2-14 floating free point conversion 4-5 store -see also new, point conversion, delete implementation-defined store and constructor 4-5 anachronism C-16 point conversion, store and destructor undefined 4-5 anachronism C-16 point literal 2-14 free 20-26 point literal, type of freestanding implementation 2-15 17-12 point promotion 4-5 freeze point type 3-44 ostrstream D-15 point type 3-45 strstreambuf D-8 point type, frexp 26-41 implementation-defined friend 3-45 local class 11-10 floating-integral conversion specifier 17-20 4-6 friend floating-literal 2-14 access specifier and 11-9 floating-suffix 2-14 class access and 11-8 float_round_style 18-9 declaration, overloaded floor 26-41 name and 11-9 flush 27-16, 44, 57/58, 63 example 9-3 basic_ostream 27-62 function, access and 11-7 fmtflags function example 11-7 ios 27-64 function, inline 11-9 ios_base 27-13 function, linkage of 11-9 fopen 27-79/80 function, member function for and 11-7 scope of declaration in function, nested class 6-7 9-18 statement 6-4, 6 inheritance and 11-9 statement, continue in local class and 11-10 6-7 member function 11-9 statement, declaration in specifier 7-9 6-7 template and 14-15 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 23 virtual and 10-11 definition 8-20 front_inserter 24-23 definition 3-3 front_insert_iterator 24-22 definition anachronism, C front_insert_iterator C-15 24-23 definition anachronism, front_insert_iterator old style C-15 24-23 definition example 8-20 operator* 24-23 global 17-15, 19 operator++ 24-23 handler 17-2 operator= 24-23 linkage specification fseek 27-80 overloaded 7-33 27-76 modifier 17-2 fstream 27-5 name hiding 13-4 full-expression 1-8 name, overloaded 13-1 function observer 17-2 -see also friend function, operator 13-28 member function, inline overloaded -see also function, virtual function overloading allocation 3-35, 5-24, parameter -see parameter 12-13 parameter adjustment 8-13 argument -see argument pointer to member 5-31 arguments, prototype scope 3-9 implementation-defined replacement 17-2 order of evaluation of reserved 17-2 8-18 return -see return body 8-20 return type -see return call 5-8 type call evaluation, scope 3-9 unspecified order of 5-8 specifier 7-6 call operator 5-6, 13-28 template 14-49 call operator, overloaded template overload 13-30 resolution 14-58 call, recursive 5-8 type 3-46, 8-12/13 call, undefined 5-17 typedef 8-15 cast, pointer to 5-17 viable 13-6 cast, undefined pointer to virtual -see virtual 5-17 function comparison 17-2 virtual member 17-16, 19 comparison, pointer to 20-9 5-34 function-body 8-20 conversion, pointer to function-definition 8-20 4-3 function-like macro 16-6 deallocation 3-36, 5-28, functions, candidate 14-36 12-13 function-specifier 7-6 declaration 3-2, 8-12 function-to-pointer declaration ambiguity conversion 4-3 8-22 function-try-block 15-1 declaration, ellipsis in fundamental 5-8, 8-13 type 3-44 declaration example 8-14 type conversion -see declaration matching, conversion, user-defined overloaded 13-4 conversion declarator () 8-12 type, destructor and 12-12 x X FO 5950 x X NP 650 24 Index DRAFT: 2 December 1996 G stride 26-31 gbump, basic_streambuf gslice_array 26-31/32 27-35 fill 26-33 gcount, basic_istream 27-49 gslice_array 26-32 generate 25-18 gslice_array 26-32 generated destructor -see operator%= 26-32 default destructor operator&= 26-32 generate_n 25-18 operator*= 26-32 get operator+= 26-32 auto_ptr 20-25 operator-= 26-32 basic_istream 27-49 operator/= 26-32 money_get 22-48 operator<<= 26-32 num_get 22-28 operator= 26-32 get_date, time_get 22-43 operator>>= 26-32 getline operator^= 26-32 basic_istream 27-50/51 operator|= 26-32 basic_string 21-36 getloc basic_streambuf 27-33 H ios_base 27-17 handler get_monthname, time_get exception 15-5, 17-21 22-43 function 17-2 get_temporary_buffer incomplete type in 20-22/23 exception 15-5 get_time, time_get 22-43 handler 15-1 get_weekday, time_get 22-43 handler-seq 15-1 get_year, time_get 22-44 hasfacet, locale 22-12 global hash, collate 22-41 anonymous union 9-15 header, C 17-14/16, function 17-15, 19 17-19/D-2 name 3-10 header-name 2-7 namespace scope 3-10 headers, C++ 17-11 scope 3-10 hex number 2-14 global, locale 22-11 hex 27-28 good, basic_ios 27-25 hexadecimal literal 2-11 goto hexadecimal-digit 2-11 initialization and 6-9 hexadecimal-escape-sequence statement 6-1, 7/8 2-12 gptr, basic_streambuf 27-34 hexadecimal-literal 2-10 grammar A-1 hex-quad 2-3 greater hiding -see name hiding than operator 5-34 horizontal tab 2-13 than or equal to operator hosted implementation 17-12 5-34 greater 20-13 greater_equal 20-13 I grouping, numpunct 22-38 id, qualified 5-4/5 gslice id, locale 22-8 class 26-29 identifier 2-8, 5-4, 7-2 gslice 26-31 _, underscore in 2-8 gslice 26-31 identifier 2-8 size 26-31 identities and overloading, start 26-31 operator 13-29 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 25 id-expression 5-4 exception specifications id-expression 5-4 17-21 #if 16-3, 17-19 exception types 17-21 if statement 6-2/3 exception::what message #ifdef 16-4 18-24 #ifndef 16-4 extension to C C-15 ifstream 27-5, 76 filebuf 27-84 ignore, basic_istream 27-51 floating point conversion ill-formed program 1-3 4-5 imag 26-8 floating point type 3-45 complex 26-10 generation of temporary imbue 12-3 basic_filebuf 27-84 linkage of main() 3-31 basic_ios 27-24 linkage specification basic_streambuf 27-35 7-32 ios_base 27-17 object linkage 7-34 implementation order of evaluation of defined alignment of bit- function arguments 8-18 field 9-15 parameters to main() 3-30 defined bit-field sign of bit-field 9-16 allocation 9-15 sign of char 3-44 defined division 5-31 sizeof integral type 3-44 defined modulus 5-31 sizeof type 3-44 defined pointer integer streambuf 27-2 conversion 5-16 streamoff 27-9/D-3 defined pointer streampos D-3 subtraction 5-32 string literal 2-15 defined right shift 5-34 type of integer literal defined sizeof expression 2-12 5-22 type_info::name 18-21 defined type of ptrdiff_t value of char literal 5-32 2-14 defined type of size_t value of multicharacter 5-22 literal 2-13 freestanding 17-12 volatile 7-11 hosted 17-12 wchar_t 3-45 limits 1-4 implementation-dependent implementation-defined 4-5, 27-45, 58 8-31, 17-12, 16, 18-2, 14, implementation-generated 19, 22, 24, 27-18, 71, definitions 3-2 27-83/C-21 implementation-specified __STDC__ 16-13 smanip 27-63 alignment requirement implemetation-defined types 3-42 17-6 asm 7-31 implicit bad_alloc::what 18-19 conversion 4-1, 12-6 bad_cast::what 18-22 conversion sequence 13-18 bad_exception::what 18-24 conversion sequences bad_typeid::what 18-22 implied object parameter basic_ios::failure 13-7 argument 27-25 destructor call 12-11 behavior 1-4 instantiation, template behavior reentrancy 17-20 14-39 x X FO 5950 x X NP 650 26 Index DRAFT: 2 December 1996 object argument 13-7 indirection 5-20 user-defined conversion operator 5-20 12-8 inequality operator 5-35 implicitly-declared inheritance 10-1 copy assignment operator -see also multiple 12-30 inheritance copy constructor 12-27 and friend 11-9 default constructor 12-2 of constructor 12-2 default constructor -see of overloaded operator default constructor 13-29 implied of user-defined conversion object parameter 13-7 12-8 object parameter, implicit Init, ios_base::Init 27-16 conversion sequences 13-7 init, basic_ios 27-44, 57 in, codecvt 22-22 ~Init, ios_base::Init 27-16 in_avail, basic_streambuf init-declarator 8-1 27-33 init-declarator-list 8-1 #include 16-4, 17-13 initialization 8-21 includes 25-28 and goto 6-9 inclusion and new 5-25 conditional 16-3 array 8-25 source file 16-4 array of class objects incomplete 8-28, 12-17 class, cast to 5-29 auto 6-9 type 3-3/4, 7, 42, 4-2, auto object 8-21 5-6/9, 11, 14, 20, 22/23, automatic 6-9 28, 32, 39, 10-1 base class 12-17/18 type, example of 3-43 character array 8-28 type in exception handler class member 8-23 15-5 class object 8-25, 12-16 increment class object -see also bool 5-11, 21 constructor operator 5-11, 20/21 const 7-9, 8-25 operator, overloaded const member 12-19 13-31 constructor and 12-16 indeterminate uninitialized default 8-21 variable 8-21 default constructor and indirect base class 10-1 12-16 indirect_array 26-34 definition and 7-2 fill 26-36 dynamic 3-31 indirect_array 26-35 example, constructor and indirect_array 26-35 12-16 operator%= 26-36 extension to C memberwise operator&= 26-36 C-2 operator*= 26-36 in block 6-9 operator+= 26-36 jump past 6-4, 9 operator-= 26-36 local static 6-9 operator/= 26-36 member 12-17 operator<<= 26-36 member object 12-18 operator= 26-36 order of 3-31, 10-3 operator>>= 26-36 order of base class 12-20 operator^= 26-36 order of member 12-20 operator|= 26-36 order of virtual base class 12-19 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 27 overloaded assignment and int 12-16 type 3-44 parameter 5-7 type specifier 7-11 reference 8-9, 29 type, unsigned 3-44 reference member 12-19 integer run-time 3-31 cast, pointer to 5-16 static member 9-13 conversion 4-5 static object 3-31, 8-21 conversion, implementation struct 8-25 defined pointer 5-16 union 8-28, 9-15 conversion, signed virtual base class 12-20, unsigned 4-5 29 literal 2-11 initializer 8-21 literal, base of 2-11 base class 8-20 literal, implementation- constant 9-5 defined type of 2-12 list {} 8-25 literal, type of 2-11 member 8-20 to pointer cast 5-16 scope of member 12-21 type 3-45 temporary and declarator integer-literal 2-10 12-4 integer-suffix 2-11 initializer 8-21 integral initializer-clause 8-21 promotion 4-4 initializer-list 8-21 type 3-44 inline 17-19 type 3-45 friend function 11-9 type, implementation- function 7-6 defined sizeof 3-44 function, extension to C value, undefined C-1 unrepresentable 4-6 member function 9-7 internal linkage 3-27 inline internal 27-27 linkage of 3-27 interpretation specifier 7-6 of binary operator 13-29 inner_product 26-38 of unary operator 13-29 inplace_merge 25-27 invalid_argument 19-3, input_iterator_tag 24-13 23-55/56 insert invalid_argument 19-3 basic_string 21-23 invalid_argument 19-3 deque 23-19 invocation, macro 16-7 list 23-24 27-40 vector 23-33 27-8 inserter 24-25 ios 27-5, 9 insert_iterator 24-23 fmtflags 27-64 insert_iterator 24-24 ios_base 27-9 insert_iterator 24-24 flags 22-12/13, 27-16 operator* 24-24 fmtflags 27-13 operator++ 24-24 getloc 27-17 operator= 24-24 imbue 27-17 instantiation ios_base 27-19 explicit 14-42 ios_base 27-19 point of 14-35 iostate 27-14 template implicit 14-39 iword 27-18 unit 2-3 openmode 27-14 int, bool promotion to 4-5 precision 22-13, 27-17 x X FO 5950 x X NP 650 28 Index DRAFT: 2 December 1996 pword 27-18 istrstream D-13 register_callback 27-19 rdbuf D-14 seekdir 27-15 str D-14 setf 27-16 isupper 22-12 sync_with_stdio 27-17 isxdigit 22-12 unsetf 27-17 iteration statement 6-4 width 22-13, 27-17 iteration-statement 6-4, 8 xalloc 27-18 scope 6-5 ios_base::failure 27-12 iterator requirements 24-1 failure 27-12 24-8 what 27-12 iter_swap 25-16 ios_base::Init 27-15 iword, ios_base 27-18 Init 27-16 ~Init 27-16 27-2 J iostate, ios_base 27-14 Jessie 12-6 27-6 jump is past initialization 6-4, ctype 22-14 9 ctype 22-19 statement 6-7 isalnum 22-12 jump-statement 6-7 isalpha 22-12 iscntrl 22-12 isdigit 22-12 K isgraph 22-12 keyword A-1 islower 22-12 anachronism, overload ISO C summary, compatibility C-15 with C-3 list 2-8 D-1/C-21 is_open basic_filebuf 27-79, 89 L basic_ifstream 27-86 L basic_ofstream 27-87 prefix 2-13, 15 isprint 22-12 suffix 2-11, 15 ispunct 22-12 l suffix 2-11, 15 isspace 22-12 label 6-8 27-40 case 6-1, 4 istream 27-5, 40 default 6-1, 4 operator>> 27-46 name space 6-1 istreambuf_iterator 24-28 scope of 3-9, 6-1 equal 24-31 specifier : 6-1 istreambuf_iterator 24-30 labeled statement 6-1 istreambuf_iterator 24-30 lattice -see DAG, sub-object operator!= 24-31 layout operator* 24-31 access specifier and operator++ 24-31 object 11-3 operator== 24-31 bit-field 9-15 proxy 24-30 class object 9-6, 10-3 istream_iterator 24-25 layout-compatible type 3-44 operator== 24-27 left istringstream 27-5, 66 shift operator 5-33 istrstream D-13 shift, undefined 5-33 istrstream D-13 left 27-28 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 29 length of name 2-8 7-32 length specification object 7-34 char_traits 21-18/19, specification overloaded 22/24, 26, 28/31, 33/34 function 7-33 codecvt 22-23 to C 7-32 valarray 26-22 linkage-specification 7-31 length_error 19-3, 21-12 list length_error 19-3 keyword 2-8 length_error 19-3 operator 2-9, 13-28 less {}, initializer 8-25 than operator 5-34 23-13 than or equal to operator list 23-20 5-34 assign 23-23 less 20-13 erase 23-24 less_equal 20-13 insert 23-24 LessThanComparable merge 23-25 requirements 20-2 remove 23-25 lexical conventions 2-1 resize 23-23 lexicographical_compare reverse 23-25 25-33 sort 23-25 library splice 23-24 C++ Standard 17-1, 16, unique 23-25 18, 20/21 literal 2-10, 5-3 Standard C 17-1, 8, 11, base of integer 2-11 17-14/C-17, C-20 character 2-13 limits, implementation 1-4 decimal 2-11 18-3 double 2-15 D-1 float 2-15 #line 16-11 floating point 2-14 linkage 3-1, 27 hexadecimal 2-11 consistency 7-4 implementation-defined consistency example 7-4 type of integer 2-12 external 3-27, 17-14/16 implementation-defined implementation-defined value of char 2-14 object 7-34 implementation-defined internal 3-27 value of multicharacter of class 3-27 2-13 of const 3-27, 7-4 integer 2-11 of enumeration 3-28 long 2-11 of extern 7-4 long double 2-15 of friend function 11-9 multicharacter 2-13 of inline 3-27 narrow-character 2-13 of main(), octal 2-11 implementation-defined type of character 2-13 3-31 type of floating point of static 3-27, 7-4 2-15 specification 7-31 type of integer 2-11 specification class 7-32 unsigned 2-11 specification consistency literal 2-10 7-33 local specification, extern class and friend 11-10 7-31 class definition 9-18 specification, class example 9-18 implementation-defined x X FO 5950 x X NP 650 30 Index DRAFT: 2 December 1996 class, friend 11-10 logical_or 20-14 class member function logic_error 19-2 9-18 logic_error 19-2 class, member function in logic_error 19-2 9-8 long class nested class 9-19 double literal 2-15 class restriction 9-19 double type 3-45 class restriction, static literal 2-11 member 9-14 type 3-44 class, scope of 9-18 type specifier 7-11 object, static 3-34 type, unsigned 3-44 object storage duration typedef and 7-3 3-34 longjmp 18-28 scope 3-8 long-suffix 2-11 static, destruction of look up, name 3-12 6-10 lookup static initialization 6-9 argument-dependent 3-16 variable, destruction of member name 10-5 6-7, 9 name 3-1 22-1 template name 14-23 locale lower_bound 25-25 category 22-5 lowercase 17-8 classic 22-11 lvalue 3-48 facet 22-8 assignment and 5-38 global 22-11 cast 5-14, 16 hasfacet 22-12 cast, reinterpret_cast, id 22-8 5-16 locale() 22-9 cast, static_cast, 5-14 name 22-10 conversion to rvalue 4-2 operator!= 22-10 modifiable 3-48 operator() 22-11 lvalue-to-rvalue conversion operator== 22-10 4-2 usefacet 22-11 ~locale() 22-10 locale(), locale 22-9 M ~locale(), locale 22-10 macro D-1 definition scope 16-9 locale-specific behavior function-like 16-6 1-4 invocation 16-7 log 26-26, 41 masking 17-19 complex 26-11 name 16-6 log10 26-26, 41 object-like 16-6 complex 26-11 parameters 16-7 logical preprocessor 16-1 AND operator 5-37 replacement 16-6 AND operator, side effects main() 3-30 and 5-37 implementation-defined OR operator 5-37 linkage of 3-31 OR operator, side effects implementation-defined and 5-37 parameters to 3-30 negation operator 5-20/21 parameters to 3-30 logical_and 20-14 return from 3-31, 33 logical_not 20-14 make_heap 25-31 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 31 make_pair 20-9 destructor order of malloc 20-26/C-22 execution 12-10 management anachronism, enumerator 7-16 memory C-16 example, static 9-13 23-37 function and access map 23-40 control 12-1 operator< 23-42 function and friend operator== 23-42 function 11-7 operator[] 23-43 function call, undefined mask_array 26-33 9-9 fill 26-34 function, class 9-7 mask_array 26-34 function, const 9-11 mask_array 26-34 function, constructor and operator%= 26-34 12-3 operator&= 26-34 function definition 9-7 operator*= 26-34 function, destructor and operator+= 26-34 12-11 operator-= 26-34 function example 9-9, operator/= 26-34 11-7 operator<<= 26-34 function, friend 11-9 operator= 26-34 function in local class operator>>= 26-34 9-8 operator^= 26-34 function, inline 9-7 operator|= 26-34 function, local class masking macro 17-19 9-18 D-1 function, nested class max 25-32 11-13 valarray 26-22 function, overload max_element 25-32 resolution and 13-7 max_length, codecvt 22-23 function, static 9-12/13 max_size, basic_string function template 14-12 21-20 function, union 9-14 meaning of declarator 8-5 function, virtual 17-16, member 19 -see also base class function, volatile 9-11 member initialization 12-17 access operator, initialization, const overloaded 13-31 12-19 access ambiguity 10-5 initialization, order of access, base class 10-1 12-20 access, class 5-9 initialization, reference access, struct default 12-19 9-2 initialization, static access, union default 9-2 9-13 array 9-6 initializer 8-20 cast, pointer to 5-16/17 initializer, scope of class object 9-6 12-21 constructor order of local class restriction, execution 12-3 static 9-14 declaration 9-4 name access 11-1 declaration, class 9-4 name access example 11-6 declaration, static 3-2 name lookup 10-5 definition, static 9-13 name, overloaded 9-5 x X FO 5950 x X NP 650 32 Index DRAFT: 2 December 1996 object initialization mismatch 25-14 12-18 missing storage class pointer to -see pointer to specifier 7-4 member mixed pointer and pointer to pointer value, null 4-6 member type, multi-level static 9-12 4-4 static class 3-34 mod 26-41 storage duration, class modf 26-41 3-37 modifiable lvalue 3-48 template and static 14-13 modifier function 17-2 type of static 5-20 modulus use, static 9-12 implementation defined member-declaration 9-4 5-31 member-declarator 9-5 operator 5-31 member-specification 9-4 zero, undefined 5-2 memberwise modulus 20-12 assignment, extension to C money_get 22-47 C-2 do_get 22-48 initialization, extension get 22-48 to C C-2 moneypunct 22-50 memchr 21-41 do_curr_symbol 22-52 memcpy 22-20 do_decimal_point 22-52 mem_fun 20-18 do_frac_digits 22-53 mem_fun1 20-18 do_grouping 22-52 mem_fun1_ref 20-18 do_neg_format 22-53 mem_fun1_ref_t 20-18 do_negative_sign 22-52 mem_fun1_t 20-17 do_pos_format 22-53 mem_fun_ref 20-18 do_positive_sign 22-52 mem_fun_ref_t 20-18 do_thousands_sep 22-52 mem_fun_t 20-17 moneypunct_byname 22-53 mem-initializer 12-18 money_put 22-49 mem-initializer-id 12-18 do_put 22-50 memory put 22-50 management -see also new, most delete derived class 1-6 management anachronism derived object 1-6 C-16 multibyte model 1-5 character 1-4 20-19 encoding 2-16 merge 25-27 string, null-terminated list 23-25 17-9 message, diagnostic 1-3 multicharacter messages 22-54 literal 2-13 close 22-54 literal, implementation- do_close 22-55 defined value of 2-13 do_get 22-54/55 multidimensional do_open 22-55 array 8-12 open 22-54 array declarator 8-11 messages_byname 22-55 multi-level min 25-32 mixed pointer and pointer valarray 26-22 to member type 4-4 min_element 25-32 pointer to member type minus 20-12 4-4 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 33 multimap 23-44 resolution, template operator< 23-46 14-23 operator== 23-46 scope of 3-6 multiple space, label 6-1 declaration 3-30 unqualified 3-12 inheritance 10-1, 3 name inheritance DAG 10-4 locale 22-10 inheritance, extension to type_info 18-21 C C-2 namespace 17-10, 17-15/D-2 inheritance, virtual and definition 7-16 10-11 scope 3-9 multiplication operator scope, anonymous union at 5-31 9-15 multiplicative operator scope, global 3-10 5-31 std 17-15 multiplicative-expression namespaces 7-16 5-31 narrow string literal 2-15 multiset 23-50 narrow operator< 23-53 basic_ios 27-24 operator== 23-53 ctype 22-15 mutable 7-3 ctype 22-20 narrow-character literal 2-13 N NDEBUG 17-13 name 2-8, 3-1, 5-4 negate 20-12 address of cv-qualified negation operator, logical 5-20 5-20/21 and translation unit 3-1 nested class -see class name class anachronism, scope declaration 3-2 of C-17 dependent 14-29, 35 class definition 9-16 elaborated enum 7-13 class definition example global 3-10 9-17, 11-13 hiding 3-7, 11, 5-3/4, class example 9-16 6-9 class forward declaration hiding, class definition example 9-18 9-2 class friend function hiding, function 13-4 9-18 hiding, overloading versus class, local class 9-19 13-4 class member function hiding, user-defined 11-13 conversion and 12-9 class, scope of 9-16 length of 2-8 type name 9-19 look up 3-12 type name example 9-19 lookup 3-1 type name, scope of 9-19 lookup, member 10-5 nested-name-specifier 5-4 lookup, template 14-23 17-16, 18-14 macro 16-6 new 3-34, 5-23/24, 12-13 overloaded function 13-1 array 5-24 overloaded member 9-5 array of class objects and point of declaration 3-7 5-25 qualified 3-18 constructor and 5-25 reserved 17-14 default constructor and 5-25 x X FO 5950 x X NP 650 34 Index DRAFT: 2 December 1996 exception and 5-26 NTWCS 17-9 extension to C C-2 static 17-9 extension to C overloading null C-2 character 0 2-16 initialization and 5-25 directive 16-12 operator 17-16, 18-15, member pointer value 4-6 18, 20-26 pointer constant 4-6 placement syntax 5-25 pointer value 4-6 scoping and 5-23 reference 8-9 storage allocation 5-23 statement 6-1 type of 12-13 NULL 18-2 unspecified constructor null-terminated and 5-27 byte string 17-8 unspecified order of multibyte string 17-9 evaluation 5-27 wide-character string new[], operator 17-16, 17-9 18-17/18 number new-declarator 5-23 hex 2-14 new-expression 5-23 octal 2-14 new_handler 3-36, 17-17, numeric type requirements 18-19 26-1 new-initializer 5-23 26-37 new-line 2-13 numeric_limits 3-45, 18-3 new-placement 5-23 num_get 22-26 new-type-id 5-23 do_get 22-28 next_permutation 25-33 get 22-28 noboolalpha 27-26 numpunct 22-37 nondigit 2-8 decimal_point 22-38 none, bitset 23-59 do_decimal_point 22-39 nonnested class anachronism do_grouping 22-39 C-17 do_thousands_sep 22-39 non-trivial do_truename do_falsename constructor 12-2 22-39 destructor 12-10 grouping 22-38 nonvirtual base class DAG thousands_sep 22-38 10-4 truename falsename 22-38 nonzero-digit 2-11 numpunct_byname 22-39 norm, complex 26-10 num_put 22-31 noshowbase 27-26 do_put 22-33 noshowpoint 27-27 put 22-32 noshowpos 27-27 noskipws 27-27 not1 20-14 O not2 20-15 object 1-6, 3-1, 48 notation, syntax 1-5 class -see also class not_equal_to 20-13 object nounitbuf 27-27 complete 1-6 nouppercase 27-27 definition 3-3 NTBS 17-8/9, 27-79/D-15 delete 5-27 static 17-9 destructor and placement nth_element 25-25 of 12-12 NTMBS 17-9 destructor static 3-33 static 17-9 initialization, auto 8-21 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 35 initialization, static operator 3-31, 8-21 %= 5-38 layout, access specifier &= 5-38 and 11-3 *= 5-38 lifetime 3-37 += 5-21, 38 linkage, implementation- -= 5-38 defined 7-34 /= 5-38 linkage specification <<= 5-38 7-34 >>= 5-38 representation 3-42 ^= 5-38 state 17-2 additive 5-31 static local 3-34 address-of 5-20 storage duration, local assignment 5-38, 17-9 3-34 bitwise 5-36 temporary -see temporary bitwise AND 5-36 type 1-6 bitwise exclusive OR 5-36 type 3-43 bitwise inclusive OR 5-36 type, completely defined cast 5-20, 29, 8-2 9-5 class member access 5-9 undefined deleted 3-37 comma 5-39 unnamed 12-3 conditional expression object-expression 5-2 5-37 object-like macro 16-6 conversion 12-7 observer function 17-2 copy assignment 12-26 oct 27-28 decrement 5-11, 20, 22 octal division 5-31 literal 2-11 equality 5-35 number 2-14 example, scope resolution octal-escape-sequence 2-12 10-6 octal-literal 2-10 function call 5-6, 13-28 of function call 13-28 overloading, example 13-1 greater than 5-34 reference, direct binding greater than or equal to 8-30 5-34 offsetof 18-2/C-21 identities and overloading ofstream 27-5, 76 13-29 old increment 5-11, 20/21 style base class indirection 5-20 initializer anachronism inequality 5-35 C-16 left shift -see left shift style function definition operator anachronism C-15 less than 5-34 one-definition rule 3-3 less than or equal to one's complement operator 5-34 5-20/21 list 2-9, 13-28 open logical AND 5-37 basic_filebuf 27-79, 89 logical OR 5-37 basic_ifstream 27-86 logical negation 5-20/21 basic_ofstream 27-87 modulus 5-31 messages 22-54 multiplication 5-31 openmode, ios_base 27-14 multiplicative 5-31 operations on class object new -see new 9-1 one's complement 5-20/21 x X FO 5950 x X NP 650 36 Index DRAFT: 2 December 1996 overloaded 5-1 bitset 23-59 overloading -see also complex 26-9 overloaded operator istreambuf_iterator 24-31 overloading restrictions locale 22-10 13-28 reverse_iterator 24-19 pointer to member 5-30 type_info 18-21 precedence of 1-9 valarray 26-24 relational 5-34 operator%, valarray 26-23 right shift; right shift operator%= operator 5-33 gslice_array 26-32 scope resolution 5-3/4, indirect_array 26-36 9-8, 10-1, 13 mask_array 26-34 shift -see left shift slice_array 26-29 operator, right shift valarray 26-21 operator operator& side effects and comma bitset 23-59 5-39 valarray 26-23 side effects and logical operator&&, valarray AND 5-37 26-23/24 side effects and logical operator&= OR 5-37 bitset 23-57 sizeof 5-20, 22 gslice_array 26-32 subscripting 5-6, 13-28 indirect_array 26-36 unary 5-20 mask_array 26-34 unary minus 5-20/21 slice_array 26-29 unary plus 5-20/21 valarray 26-21 use, scope resolution operator(), locale 22-11 9-13 operator* |= 5-38 auto_ptr 20-25 operator back_insert_iterator bool, basic_ios 27-25 24-22 bool(), basic_istream complex 26-9 27-45 front_insert_iterator bool(), basic_ostream 24-23 27-58 insert_iterator 24-24 delete 17-16, 18-16, istreambuf_iterator 24-31 20-26 ostreambuf_iterator 24-33 delete 5-28, 12-13 reverse_iterator 24-17 delete -see delete valarray 26-23 delete[] 17-16, 18-17 operator*= delete[] 5-28, 12-13 complex 26-7/8 function 13-28 gslice_array 26-32 new 17-16, 18-15, 18, indirect_array 26-36 20-26 mask_array 26-34 new 5-24, 12-13 slice_array 26-29 new[] 17-16, 18-17/18 valarray 26-21 new[] 5-24, 12-13 operator+ overloaded 13-28 basic_string 21-33 operator! complex 26-8 basic_ios 27-25 reverse_iterator 24-18, valarray 26-20 20 operator!= 20-7 valarray 26-20, 23 basic_string 21-34 operator++ x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 37 back_insert_iterator vector 23-37 24-22 operator<< 27-28 front_insert_iterator basic_ostream 27-59 24-23 basic_string 21-36 insert_iterator 24-24 bitset 23-59/60 istreambuf_iterator 24-31 complex 26-9 ostreambuf_iterator 24-33 valarray 26-23 reverse_iterator 24-18 operator<<= operator+= bitset 23-57 basic_string 21-22 gslice_array 26-32 complex 26-7/8 indirect_array 26-36 gslice_array 26-32 mask_array 26-34 indirect_array 26-36 slice_array 26-29 mask_array 26-34 valarray 26-21 reverse_iterator 24-18 operator<= 20-7 slice_array 26-29 basic_string 21-35 valarray 26-21 reverse_iterator 24-20 operator- valarray 26-24 complex 26-8 operator= reverse_iterator 24-19/20 auto_ptr 20-25 valarray 26-20, 23 back_insert_iterator operator--, reverse_iterator 24-22 24-18 bad_alloc 18-19 operator-= bad_cast 18-21 complex 26-7/8 bad_exception 18-24 gslice_array 26-32 bad_typeid 18-22 indirect_array 26-36 basic_string 21-19 mask_array 26-34 exception 18-23 reverse_iterator 24-19 front_insert_iterator slice_array 26-29 24-23 valarray 26-21 gslice_array 26-32 operator-> indirect_array 26-36 auto_ptr 20-25 insert_iterator 24-24 reverse_iterator 24-18 mask_array 26-34 operator/, valarray 26-23 ostreambuf_iterator 24-32 operator/= slice_array 26-28 complex 26-8 type_info 18-21 gslice_array 26-32 valarray 26-19 indirect_array 26-36 operator== mask_array 26-34 basic_string 21-34 slice_array 26-29 bitset 23-59 valarray 26-21 complex 26-9 operator< istream_iterator 24-27 basic_string 21-35 istreambuf_iterator 24-31 map 23-42 locale 22-10 multimap 23-46 map 23-42 multiset 23-53 multimap 23-46 pair 20-9 multiset 23-53 queue 23-27 pair 20-8 reverse_iterator 24-19 queue 23-27 set 23-50 reverse_iterator 24-19 valarray 26-24 set 23-50 vector 23-32 type_info 18-20 x X FO 5950 x X NP 650 38 Index DRAFT: 2 December 1996 valarray 26-24 bitset 23-58 vector 23-32 valarray 26-20 vector 23-37 operator 13-28 operator> 20-7 operator-function-id 13-28 basic_string 21-35 optimization of temporary reverse_iterator 24-19 -see elimination of valarray 26-24 temporary operator>= 20-8 OR basic_string 21-36 operator, bitwise reverse_iterator 24-20 exclusive 5-36 valarray 26-24 operator, bitwise operator>> inclusive 5-36 basic_istream 27-46 operator, logical 5-37 basic_string 21-36 operator, side effects and bitset 23-59 logical 5-37 complex 26-9 order istream 27-46 of argument evaluation valarray 26-23 5-8 operator>>= of argument evaluation, bitset 23-57 unspecified 5-8 gslice_array 26-32 of base class indirect_array 26-36 initialization 12-20 mask_array 26-34 of destruction of slice_array 26-29 temporary 12-4 valarray 26-21 of evaluation new, operator[] unspecified 5-27 basic_string 21-21 of evaluation of map 23-43 expression 1-9 reverse_iterator 24-19 of evaluation of function valarray 26-19/20 arguments, operator^ implementation-defined bitset 23-59 8-18 valarray 26-23 of evaluation, unspecified operator^= 3-32, 5-1 bitset 23-57 of execution, base class gslice_array 26-32 constructor 12-3 indirect_array 26-36 of execution, base class mask_array 26-34 destructor 12-10 slice_array 26-29 of execution, constructor valarray 26-21 and array 12-16 operator| of execution, constructor bitset 23-59 and static objects 12-17 valarray 26-23 of execution, destructor operator|= 12-10 bitset 23-57 of execution, destructor gslice_array 26-32 and array 12-11 indirect_array 26-36 of execution, member mask_array 26-34 constructor 12-3 slice_array 26-29 of execution, member valarray 26-21 destructor 12-10 operator||, valarray of function call 26-23/24 evaluation, unspecified operator~ 5-8 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 39 of initialization 3-31, resolution contexts 13-6 10-3 resolution, function of member initialization template 14-58 12-20 resolution, template of virtual base class 14-22 initialization 12-19 overload keyword anachronism 27-40 C-15 ostream 27-5, 40 overloaded ostreambuf_iterator 24-32 assignment and failed 24-33 initialization 12-16 operator* 24-33 assignment operator 13-29 operator++ 24-33 binary operator 13-29 operator= 24-32 declaration 13-1 ostreambuf_iterator 24-32 decrement operator 13-31 ostreambuf_iterator 24-32 function, address of ostream_iterator 24-27 5-21, 13-26 ostringstream 27-5, 66 function ambiguity ostrstream D-14 detection 13-5 :pcount D-15 function call operator freeze D-15 13-30 ostrstream D-14 function call resolution ostrstream D-14 -see also argument rdbuf D-15 matching, overload str D-15 resolution out, codecvt 22-22 function declaration out_of_range 19-3, 21-12, matching 13-4 23-56/59 function, linkage out_of_range 19-3 specification 7-33 out_of_range 19-3 function name 13-1 output_iterator_tag 24-13 increment operator 13-31 overflow 5-2 member access operator undefined 5-2 13-31 overflow member name 9-5 basic_filebuf 27-82 name and friend basic_streambuf 27-39 declaration 11-9 basic_stringbuf 27-69 operator 13-28 strstreambuf D-9 operator 5-1 overflow_error 19-4/5, operator 13-28 23-56, 58 operator and default overflow_error 19-4 argument 13-29 overflow_error 19-4 operator, inheritance of overload 13-29 resolution 13-5 subscripting operator resolution and conversion 13-30 13-17 unary operator 13-29 resolution and default overloading 8-13, 9-2, argument 13-16 13-1, 14-21 resolution and ellipsis and access 13-5 13-16 and const 13-3 resolution and member and default initializers function 13-7 13-3 resolution and pointer and delete 3-37 conversion 13-27 and derived class 13-4 x X FO 5950 x X NP 650 40 Index DRAFT: 2 December 1996 and enum 13-2 and ambiguity 5-24 and equivalent parameter in declaration 8-3, 7 declarations 13-2 parenthesized expression and pointer versus array 5-4 13-2 partial specializations, and return type 13-1 class template 14-17 and scope 13-4 partial_sort 25-24 and static 13-1 partial_sort_copy 25-24 and typedef 13-2 partial_sum 26-38 and volatile 13-3 partition 25-22 delete, extension to C pbackfail C-2 basic_filebuf 27-81 extension to C C-1 basic_streambuf 27-38 new, extension to C C-2 basic_stringbuf 27-68 operator identities and strstreambuf D-9 13-29 pbase, basic_streambuf postfix ++ and -- 13-31 27-35 prefix ++ and -- 13-31 pbump, basic_streambuf resolution and access 27-35 control 10-6 :pcount, ostrstream D-15 restriction 13-28 pcount subsequence rule 13-24 strstream D-17 versus name hiding 13-4 strstreambuf D-8 overrider, final 10-8 peek, basic_istream 27-52 period 17-8 phases, translation 2-1 P placement pair 20-8 of object, destructor and operator< 20-9 12-12 operator== 20-8 syntax, new 5-25 parameter 1-4, 8-20 plus 20-12 adjustment, array 8-13 pm-expression 5-30 adjustment, function 8-13 POD declaration 8-13 class type 5-25 example, unnamed 8-21 type 3-44 initialization 5-7 type 5-25 list example, variable POD-struct 9-2 8-13 point list, variable 5-8, 8-13 of declaration class name reference 8-8 9-4 scope of 3-8 of declaration, enumerator void 8-13 3-7 parameter type list 8-14 of declaration name 3-7 parameter-declaration 8-13 of definition, enumerator parameterized type -see 7-14 template of error checking 14-24 parameters of instantiation 14-35 macro 16-7 promotion, floating 4-5 to main() 3-30 type, floating 3-44 to main(), pointer implementation-defined -see also void* 3-30 and pointer to member parentheses type, multi-level mixed 4-4 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 41 arithmetic 5-32 to member type, multi- cast, integer to 5-16 level mixed pointer and comparison 5-34/35 4-4 comparison, undefined to member void* conversion 5-32, 35 4-7 comparison, unspecified type 3-46 5-35 type extension to C, void* comparison, void* 5-34 C-2 constant, null 4-6 value, null 4-6 conversion 4-6 value, null member 4-6 conversion, array 4-2 versus array, overloading conversion, overload and 13-2 resolution and 13-27 zero 4-6 declaration 8-7 pointer_to_binary_function declarator * 8-7 20-17 example, constant 8-7 pointer_to_unary_function integer conversion, 20-16 implementation defined polar, complex 26-10 5-16 polymorphic subtraction, class 10-8 implementation defined type 10-8 5-32 pop, priority_queue 23-28 terminology 3-46 pop_heap 25-31 to abstract class 10-14 postfix to bit-field restriction ++ and -- 5-11 9-16 ++ and --, overloading to function cast 5-17 13-31 to function cast, expression 5-5 undefined 5-17 potential scope 3-6 to function comparison pow 26-26, 41 5-34 complex 26-11 to function conversion pp-number 2-7 4-3 pptr, basic_streambuf 27-35 to integer cast 5-16 pragma directive 16-12 to member 3-46, 5-30 #pragma 16-12 to member anachronism, precedence of operator 1-9 cast of C-17 precision, ios_base 22-13, to member cast 5-16/17 27-17 to member constant prefix expression 5-20 ++ and -- 5-21 to member conversion 4-6 ++ and --, overloading to member conversion 13-31 anachronism C-17 L 2-13, 15 to member declarator ::* preprocessing 16-1 8-9 directive 16-1 to member example 8-9 preprocessing-op-or-punc to member, extension to C 2-9 C-2 preprocessing-token 2-4 to member function 5-31 preprocessor, macro 16-1 to member function, prev_permutation 25-34 undefined bound C-17 primary to member operator 5-30 expression 5-3 to member type, multi- template 14-17 level 4-4 x X FO 5950 x X NP 650 42 Index DRAFT: 2 December 1996 priority_queue 23-27 virtual function pop 23-28 definition 10-13 priority_queue 23-28 virtual function example priority_queue 23-28 10-13 push 23-28 pure-specifier 9-5 private 11-1 push, priority_queue 23-28 base class 11-4 push_heap 25-31 program 3-27 put environment 3-30 basic_ostream 27-62 ill-formed 1-3 money_put 22-50 start 3-30/31 num_put 22-32 startup 17-14, 16 time_put 22-46 termination 3-31, 33 putback, basic_istream termination and destructor 27-52 12-11 pword, ios_base 27-18 well-formed 1-5 promotion floating point 4-5 Q integral 4-4 qualification to int, bool 4-5 conversions 4-3 protected 11-1 explicit 3-18 extension to C C-2 qualified protection 17-20 id 5-4/5 -see access control name 3-18 proxy, istreambuf_iterator qualified-id 5-4 24-30 question mark 2-13 pseudo destructor call 5-9 23-13 pseudo-destructor-name 5-9 queue 23-26 pseudo-destructor-name 5-6 operator< 23-27 ptrdiff_t 5-32 operator== 23-27 implementation defined quote type of 5-32 double 2-13 ptr_fun 20-17 single 2-13 ptr-operator 8-2 pubimbue, basic_streambuf 27-33 R public 11-1 random_access_iterator_tag base class 11-4 24-13 pubseekoff, basic_streambuf random_shuffle 25-21 27-33 range_error 19-4 pubseekpos, basic_streambuf range_error 19-4 27-33 range_error 19-4 pubsetbuf, basic_streambuf rank, conversion 13-21 27-33 rbegin, basic_string 21-20 pubsync, basic_streambuf rdbuf 27-33 basic_filebuf 27-89 punctuators 2-9 basic_ifstream 27-86 pure basic_ios 27-24 specifier 9-5 basic_istringstream 27-72 virtual destructor 12-11 basic_ofstream 27-87 virtual function 10-13/14 basic_ostringstream 27-74 virtual function call, basic_stringstream 27-75 undefined 10-15 istrstream D-14 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 43 ostrstream D-15 reference cast 5-17 strstream D-17 relational operator 5-34 rdstate, basic_ios 27-25 relational-expression 5-34 read, basic_istream 27-52 release, auto_ptr 20-26 readsome, basic_istream remainder operator -see 27-52 modulus operator real 26-8 remove 25-19 complex 26-10 list 23-25 realloc 20-26 remove_copy 25-19 recursive function call 5-8 remove_copy_if 25-19 redefinition remove_if 25-19 enumerator 7-14 rend, basic_string 21-20 typedef 7-7 replace 25-17 reentrancy 17-20 basic_string 21-25 implementation-defined replace_copy 25-17 behavior 17-20 replace_copy_if 25-17 reference 3-46 replace_if 25-17 and argument passing 8-29 replacement and return 8-29 function 17-2 argument 5-8 macro 16-6 assignment 8-29 representation assignment to 5-39 object 3-42 binding 8-30 value 3-42 call by 5-8 required behavior 17-2, 6 cast 5-15, 17 requirements 17-4 cast, reinterpret_cast, Allocator 20-3 5-17 Assignable 23-2 cast, static_cast, 5-15 CopyConstructible 20-2 const 8-31 EqualityComparable 20-1 declaration 8-8 LessThanComparable 20-2 declaration, extern 8-29 container 23-1 declarator & 8-8 iterator 24-1 direct binding of 8-30 numeric type 26-1 expression 5-2 reraise 15-4 initialization 8-9, 29 rescanning and replacement member initialization 16-8 12-19 reserve null 8-9 basic_string 21-21 parameter 8-8 vector 23-33 restriction 8-9 reserved sizeof 5-22 function 17-2 type, extension to C C-1 identifier 2-8 reference-compatible 8-30 name 17-14 reference-related 8-30 word -see keyword region, declarative 3-1, 6 reset, bitset 23-58 register 7-3 resetiosflags 27-63 declaration 7-4 resize restriction 7-4 basic_string 21-20 register_callback, ios_base deque 23-19 27-19 list 23-23 reinterpret cast 5-16 valarray 26-23 reinterpret_cast vector 23-33 lvalue cast 5-16 resolution x X FO 5950 x X NP 650 44 Index DRAFT: 2 December 1996 and conversion, overload type, overloading and 13-17 13-1 and default argument, return 6-7/8 overload 13-16 constructor and 6-8 and ellipsis, overload from main() 3-31, 33 13-16 reference and 8-29 and member function, statement -see also return overload 13-7 reverse 25-20 and pointer conversion, list 23-25 overload 13-27 reverse_copy 25-20 argument matching -see reverse_iterator 24-15 overload conversion 24-17 function template overload operator!= 24-19 14-58 operator* 24-17 overload 13-5 operator+ 24-18, 20 overloaded function call operator++ 24-18 resolution -see also operator+= 24-18 argument matching, operator- 24-19/20 overload operator-- 24-18 overloading -see overload operator-= 24-19 resolution operator-> 24-18 resolution overloading operator< 24-19 -see overload operator<= 24-20 scoping ambiguity 10-6 operator== 24-19 template name 14-23 operator> 24-19 template overload 14-22 operator>= 24-20 restriction 17-18/19, 21 operator[] 24-19 address of bit-field 9-16 reverse_iterator 24-17 anonymous union 9-15 reverse_iterator 24-17 auto 7-4 rfind, basic_string 21-29 bit-field 9-16 right constructor 12-2/3 shift, implementation copy assignment operator defined 5-34 12-31 shift operator 5-33 copy constructor 12-28 right 27-28 destructor 12-10/11 rotate 25-21 enumerator 7-14 rotate_copy 25-21 extern 7-4 rounding 4-6 local class 9-19 rule overloading 13-28 as-if 1-6 pointer to bit-field 9-16 one-definition 3-3 reference 8-9 rules register 7-4 for conditions 6-3 static 7-4 summary, scope 3-12 static member local class run-time initialization 9-14 3-31 union 9-14, 12-3 runtime_error 19-4 restrictions, operator runtime_error 19-4 overloading 13-28 runtime_error 19-4 rethrow 15-4 rvalue 3-48 return lvalue conversion to 4-2 type 8-14 type conversion 6-8 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 45 S resolution operator use sbumpc, basic_streambuf 9-13 27-33 rules summary 3-12 scalar type 3-44 selection-statement 6-2 scan_is scoping ctype 22-14 ambiguity resolution 10-6 ctype 22-19 and new 5-23 scan_not search 25-15 ctype 22-14 seekdir, ios_base 27-15 ctype 22-19 seekg, basic_istream 27-53 s-char 2-15 seekoff s-char-sequence 2-15 basic_filebuf 27-83 scientific 27-28 basic_streambuf 27-36 scope 3-1, 6 basic_stringbuf 27-69 anonymous union at strstreambuf D-10 namespace 9-15 seekp, basic_ostream 27-58 class 3-10 seekpos destructor and exit from basic_filebuf 27-84 6-7 basic_streambuf 27-36 exception declaration 3-8 basic_stringbuf 27-71 file 17-15 strstreambuf D-12 function 3-9 selection statement 6-2 function prototype 3-9 selection-statement 6-2 global 3-10 scope 6-2 global namespace 3-10 semantics, class member 5-9 iteration-statement 6-5 sentry local 3-8 basic_istream 27-44 macro definition 16-9 basic_ostream 27-57 namespace 3-9 ~sentry of class definition 9-2 basic_istream 27-45 of class name 9-2 basic_ostream 27-58 of declaration in for 6-7 separate of default argument 8-18 compilation 2-1 of delete example 12-14 translation 2-1 of enumerator class 7-16 sequence of label 3-9, 6-1 implicit conversion 13-18 of local class 9-18 point 1-7, 5-1 of member initializer standard conversion 4-1 12-21 statement 6-1 of name 3-6 sequencing operator -see of nested class 9-16 comma operator of nested class set, basic source character anachronism C-17 2-3 of nested type name 9-19 23-38 of parameter 3-8 set 23-47 overloading and 13-4 bitset 23-57 potential 3-6 operator< 23-50 resolution operator operator== 23-50 5-3/4, 9-8, 10-1, 13 setbase 27-64 resolution operator :: setbuf 3-19 basic_filebuf 27-83 resolution operator basic_streambuf 27-36 example 10-6 streambuf D-13 x X FO 5950 x X NP 650 46 Index DRAFT: 2 December 1996 strstreambuf D-13 of char, implementation- set_difference 25-30 defined 3-44 setf, ios_base 27-16 sign 2-14 setfill 27-64 D-1 setg, basic_streambuf 27-35 signature 1-4 set_intersection 25-29 signed setiosflags 27-63 char type 3-44 setjmp 17-15 character 3-44 D-1 typedef and 7-3 setlocale 17-8 unsigned integer set_new_handler 17-17, conversion 4-5 18-20 simple-escape-sequence 2-12 setp, basic_streambuf 27-35 simple-type-specifier 7-11 setprecision 27-64 sin 26-26, 41 setstate, basic_ios 27-25 complex 26-11 set_symmetric_difference single 25-30 precision arithmetic, set_terminate 17-17, 18-26 extension to C C-1 set_unexpected 17-17, 18-25 quote 2-13 set_union 25-29 sinh 26-26, 41 setw 27-65 complex 26-11 sgetc, basic_streambuf size 27-34 basic_string 21-20 sgetn, basic_streambuf bitset 23-59 27-34 gslice 26-31 shift operator -see left slice 26-27 shift operator, right sizeof shift operator array 5-22 shift, valarray 26-22 class object 5-22 shift-expression 5-33 empty class 9-1 short expression, implementation type 3-44 defined 5-22 type specifier 7-11 integral type, type, unsigned 3-44 implementation-defined typedef and 7-3 3-44 showbase 27-26 operator 5-20, 22 showmanyc reference 5-22 basic_filebuf 27-81 string 2-16 basic_streambuf 27-36, 81 type, implementation- showpoint 27-26 defined 3-44 showpos 27-27 size_t 5-22 side implementation defined effect 1-7 type of 5-22 effects 5-1 skipws 27-27 effects and comma operator slice 26-26 5-39 size 26-27 effects and logical AND slice 26-27 operator 5-37 slice 26-27 effects and logical OR start 26-27 operator 5-37 stride 26-27 sign slice_array 26-27 of bit-field, fill 26-29 implementation-defined operator%= 26-29 9-16 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 47 operator&= 26-29 function 7-6 operator*= 26-29 inline 7-6 operator+= 26-29 missing storage class 7-4 operator-= 26-29 static 7-4 operator/= 26-29 storage class 7-3 operator<<= 26-29 type -see type specifier operator= 26-28 typedef 7-7 operator>>= 26-29 virtual 7-7 operator^= 26-29 splice, list 23-24 operator|= 26-29 sputbackc, basic_streambuf slice_array 26-28 27-34 slice_array 26-28 sputc, basic_streambuf smanip, implementation- 27-34 specified 27-63 sputn, basic_streambuf snextc, basic_streambuf 27-34 27-33 sqrt 26-26, 41 sort 25-23 complex 26-11 list 23-25 27-65 sort_heap 25-32 stable_partition 25-22 source stable_sort 25-24 character set, basic 2-3 stack unwinding 15-5 file 2-1, 17-13, 16 23-14 file inclusion 16-4 stack 23-29 space, white 2-5 Standard special member function -see C library 17-1, 8, 11, also constructor, 17-14/C-17, C-20 destructor, inline C library exception function, user-defined specifications 17-21 conversion, virtual library, C++ 17-1, 16, function 18, 20/21 specialization standard class template 14-6 conversion 4-1 template 14-38 conversion sequence 4-1 template explicit 14-44 start, program 3-30/31 specializations, class start template partial 14-17 gslice 26-31 specification, template slice 26-27 argument 14-49 startup, program 17-14, 16 specifications state, object 17-2 C++ Standard library state, fpos 27-20 exception 17-21 statement 6-1 Standard C library -see also return, return exception 17-21 break 6-7/8 implementation-defined compound 6-2 exception 17-21 continue 6-7/8 specifier continue in for 6-7 access -see access declaration 6-8 specifier declaration in for 6-7 auto 7-4 declaration in switch 6-4 declaration 7-3 do 6-4, 6 explicit 7-7 empty 6-1 friend 7-9 expression 6-1 friend 17-20 extension to C declaration C-2 x X FO 5950 x X NP 650 48 Index DRAFT: 2 December 1996 for 6-4, 6 std, namespace 17-15 goto 6-1, 7/8 D-1 if 6-2/3 __STDC__ 16-13 iteration 6-4 implementation-defined jump 6-7 16-13 labeled 6-1 2-13, 2-15/D-1 null 6-1 19-1/2 selection 6-2 D-1 sequence 6-1 D-1/2 switch 6-2, 4, 8 storage while 6-4/5 allocation new 5-23 {}, block 6-2 class 3-1 statement 6-1 class declaration 7-3 static class specifier 7-3 NTBS 17-9 class specifier, missing NTMBS 17-9 7-4 NTWCS 17-9 duration 3-33 cast 5-14 duration, auto 3-34 type 1-4 duration, class member static 7-3 3-37 class member 3-34 duration, dynamic 3-34, data member 9-12 5-23 destruction of local 6-10 duration, local object initialization, local 6-9 3-34 linkage of 3-27, 7-4 management -see new, local object 3-34 delete member 9-12 of array 8-12 member declaration 3-2 str member definition 9-13 basic_istringstream 27-72 member example 9-13 basic_ostringstream 27-74 member function 9-12/13 basic_stringbuf 27-68 member initialization basic_stringstream 27-75 9-13 istrstream D-14 member local class ostrstream D-15 restriction 9-14 strstream D-17 member, template and strstreambuf D-8 14-13 strchr 21-40 member, type of 5-20 27-28 member use 9-12 streambuf 27-5, 29 object, destructor 3-33 implementation-defined object initialization 27-2 3-31, 8-21 setbuf D-13 objects order of streamoff 27-20/D-3 execution, constructor and implementation-defined 12-17 27-9/D-3 overloading and 13-1 streampos, implementation- restriction 7-4 defined D-3 specifier 7-4 streamsize 27-9 static_cast strftime 22-46 conversion to enumeration stride type 5-15 gslice 26-31 lvalue cast 5-14 slice 26-27 reference cast 5-15 string x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 49 concatenation 2-15 class versus 9-2 distinct 2-15 default member access 9-2 literal 2-15 initialization 8-25 literal concatenation, type specifier 9-1 undefined 2-15 structure 9-2 literal, implementation- tag -see class name defined 2-15 sub-object 1-6 literal, narrow 2-15 lattice -see DAG literal, type of 2-15 subscripting literal, undefined change example 8-11 to 2-15 explanation 8-11 literal, wide 2-15 operator 5-6, 13-28 null-terminated byte 17-8 operator, overloaded null-terminated multibyte 13-30 17-9 subsequence rule, null-terminated wide- overloading 13-24 character 17-9 substr, basic_string 21-32 sizeof 2-16 subtraction terminator 0 2-16 implementation defined type of 2-15 pointer 5-32 21-9 operator 5-31 stringbuf 27-5, 66 suffix D-1 E 2-14 string-literal 2-15 F 2-15 stringstream 27-5 L 2-11, 15 strlen D-7, 15 U 2-11 strpbrk 21-40 f 2-15 strrchr 21-40 l 2-11, 15 strstr 21-40 u 2-11 strstream D-15 sum, valarray 26-22 pcount D-17 summary rdbuf D-17 compatibility with C C-1 str D-17 compatibility with ISO C strstream D-16 C-3 strstream D-16 scope rules 3-12 ~strstream D-16 syntax A-1 ~strstream, strstream D-16 sungetc, basic_streambuf strstreambuf D-4 27-34 freeze D-8 swap 25-16 overflow D-9 basic_string 21-27, 36 pbackfail D-9 swap_ranges 25-16 pcount D-8 switch seekoff D-10 statement 6-2, 4, 8 seekpos D-12 statement, declaration in setbuf D-13 6-4 str D-8 sync strstreambuf D-6 basic_filebuf 27-84 strstreambuf D-6 basic_istream 27-53 underflow D-10 basic_streambuf 27-36 ~strstreambuf D-8 sync_with_stdio, ios_base ~strstreambuf, strstreambuf 27-17 D-8 synonym 7-20 struct type name as 7-7 x X FO 5950 x X NP 650 50 Index DRAFT: 2 December 1996 syntax and declarator initializer checking 14-24 12-4 class member 5-9 constructor for 12-4 notation 1-5 destruction of 12-4 summary A-1 destructor for 12-4 elimination of 12-3 implementation-defined T generation of 12-3 table, ctype 22-20 order of destruction of tan 26-26, 41 12-4 complex 26-11 terminate 3-33, 15-12, tanh 26-26, 41 18-13, 25/26 complex 26-11 terminate() 15-11 tellg, basic_istream 27-53 terminate_handler 17-17, tellp, basic_ostream 27-58 18-25 template 14-1 termination and < 14-5 and destructor, program and friend 14-15 12-11 and static member 14-13 program 3-31, 33 argument 14-6 terminator 0, string 2-16 argument deduction 14-51 terminology, pointer 3-46 argument specification test, bitset 23-59 14-49 this 5-3 class 23-55 anachronism, assignment to definition of 14-1 C-16 explicit specialization and constructor 14-44 anachronism C-16 function 14-49 and destructor anachronism implicit instantiation C-16 14-39 pointer -see this member function 14-12 type of 9-11 name lookup 14-23 thousands_sep, numpunct name resolution 14-23 22-38 overload resolution 14-22 throw 15-1 overload resolution, throw-expression in function 14-58 conditional-expression partial specializations, 5-38 class 14-17 throw-expression 15-1 primary 14-17 throwing, exception 15-2 specialization 14-38 tie, basic_ios 27-24 specialization, class time_get 22-42 14-6 date_order 22-43 type equivalence 14-10 do_date_order 22-44 template 14-1 do_get_date 22-44 template-argument 14-5 do_get_monthname 22-44 template-argument-list 14-5 do_get_time 22-44 template-declaration 14-1 do_get_weekday 22-44 template-id 14-5 do_get_year 22-45 template-name 14-5 get_date 22-43 template-parameter 14-2 get_monthname 22-43 template-parameter-list get_time 22-43 14-1 get_weekday 22-43 temporary 12-3 get_year 22-44 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 51 time_get_byname 22-45 compound 3-46 D-1 const 7-9 time_put 22-45 conversion, explicit -see do_put 22-46 casting put 22-46 declaration 8-5 time_put_byname 22-47 declaration consistency times 20-12 3-30 to declaration, typedef as int, bool promotion 4-5 7-7 rvalue, lvalue conversion definition, class name as 4-2 9-2 token 2-6, 10 destination 8-24 token 2-6 double 3-45 tolower 22-12 dynamic 1-3 ctype 22-15 enumerated 3-46, 17-7 ctype 22-19 enumeration underlying to_string, bitset 23-58 7-15 to_ulong, bitset 23-58 equivalence 7-7, 9-2 toupper 22-12 equivalence, template ctype 22-14 14-10 ctype 22-19 example of incomplete transform 25-17 3-43 collate 22-40 extension to C reference translation C-1 phases 2-1 extension to C user- separate 2-1 defined C-2 unit 17-13, 15 float 3-45 unit 2-1, 3-27 floating point 3-44 unit, name and 3-1 function 3-46, 8-12/13 trigraph 2-1, 3 fundamental 3-44 truename falsename, numpunct generator -see template 22-38 implementation-defined truncation 4-6 sizeof 3-44 try 15-1 incomplete 3-3/4, 7, 42, try-block 15-1 4-2, 5-6/9, 11, 14, 20, type 3-1 22/23, 28, 32, 39, 10-1 Boolean 3-44 int 3-44 POD 3-44 integral 3-44 ambiguity, declaration long 3-44 7-3 long double 3-45 arithmetic 3-45 multi-level mixed pointer array 3-46, 8-13 and pointer to member 4-4 bitmask 17-7 multi-level pointer to char 3-44 member 4-4 character 3-44 name 8-2 checking, argument 5-8 name as synonym 7-7 checking, extension to C name example 8-3 C-1 name example, nested 9-19 checking of default name, nested 9-19 argument 8-17 name, scope of nested class and 9-1 9-19 completely defined object object 1-6 9-5 of bit-field 9-16 x X FO 5950 x X NP 650 52 Index DRAFT: 2 December 1996 of character literal 2-13 typedef of constructor 12-3 and long 7-3 of conversion 12-7 and short 7-3 of delete 12-14 and signed 7-3 of enum 7-14/15 and unsigned 7-3 of floating point literal as type declaration 7-7 2-15 class name 7-8, 9-4 of integer literal 2-11 declaration 3-2 of integer literal, enum name 7-8 implementation-defined example 7-7 2-12 overloading and 13-2 of new 12-13 redefinition 7-7 of ptrdiff_t, specifier 7-7 implementation defined typedef-name 7-7 5-32 typeid 5-13 of size_t, implementation type-id 8-3 defined 5-22 type-id-list 15-8 of static member 5-20 18-20 of string 2-15 type_info 5-13, 18-20 of string literal 2-15 before 18-21 of this 9-11 name 18-21 pointer 3-46 operator!= 18-21 polymorphic 10-8 operator= 18-21 pun 5-18 operator== 18-20 requirements, numeric type_info 18-21 26-1 type_info 18-21 short 3-44 type_info::name, signed char 3-44 implementation-defined specifier, char 7-11 18-21 specifier, class 9-1 typename 7-12 specifier, double 7-11 type-parameter 14-2 specifier, enum 7-12 types specifier, float 7-11 implementation-defined specifier, int 7-11 exception 17-21 specifier, long 7-11 implemetation-defined specifier, short 7-11 17-6 specifier, struct 9-1 type-specifier specifier, union 9-1 bool 7-11 specifier, unsigned 7-11 wchart 7-11 specifier, void 7-11 type-specifier 7-9 specifier, volatile 7-11 static 1-4 unsigned 3-44 U unsigned char 3-44 U suffix 2-11 unsigned int 3-44 u suffix 2-11 unsigned long 3-44 uflow unsigned short 3-44 basic_filebuf 27-81 void 3-46 basic_streambuf 27-38 void* 3-47 unary volatile 7-9 expression 5-20 wchar_t 3-45 minus operator 5-20/21 wchar_t underlying 3-45 operator 5-20 typedef, function 8-15 operator, interpretation of 13-29 x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 53 operator, overloaded underscore 13-29 character 17-15 plus operator 5-20/21 in identifier _ 2-8 unary-expression 5-20 unexpected 18-25 unary_function 20-11 unexpected() 15-12 unary_negate 20-14 unexpected_handler 17-17, unary-operator 5-20 18-25 uncaught\xception 18-26 unget, basic_istream 27-52 #undef 16-9, 17-15 uninitialized variable, undefined 17-2, 15/16, 18, indeterminate 8-21 18-28, 21-21, 24-29, uninitialized_copy 20-23 26-18, 20/22, 24/25, 30, uninitialized_fill 20-23 36, 27-21 uninitialized_fill_n 20-24 arithmetic exception 5-2 union 3-46, 9-14 behavior 1-4 access control, anonymous bound pointer to member 9-15 function C-17 anonymous 9-14 change to const object at namespace scope, 7-10 anonymous 9-15 change to string literal class versus 9-2 2-15 constructor 9-14 delete 5-28 default member access 9-2 deleted object 3-37 destructor 9-14 division by zero 5-2, 31 extension to C anonymous escape sequence 2-13 C-2 floating point conversion global anonymous 9-15 4-5 initialization 8-28, 9-15 function call 5-17 member function 9-14 left shift 5-33 restriction 9-14, 12-3 member function call 9-9 restriction, anonymous modulus zero 5-2 9-15 overflow 5-2 type specifier 9-1 pointer comparison 5-32, unique 25-19 35 list 23-25 pointer to function cast unique_copy 25-20 5-17 unit pure virtual function call instantiation 2-3 10-15 translation 17-13, 15 string literal unitbuf 27-27 concatenation 2-15 universal-character-name unrepresentable integral 2-3 value 4-6 universal-character-name underflow 2-3 basic_filebuf 27-81 unknown argument type 8-13 basic_streambuf 27-37 unnamed basic_stringbuf 27-68 bit-field 9-16 strstreambuf D-10 class 7-8 underflow_error object 12-3 underflow_error 19-5 parameter example 8-21 underflow_error 19-5 unqualified name 3-12 underlying unqualified-id 5-4 type, enumeration 7-15 unrepresentable integral type, wchar_t 3-45 value, undefined 4-6 x X FO 5950 x X NP 650 54 Index DRAFT: 2 December 1996 unsetf, ios_base 27-17 20-7 unshift, codecvt 22-22 unsigned arithmetic 3-45 V char type 3-44 va_end 17-15 int type 3-44 26-12 integer conversion, signed valarray 26-15, 32 4-5 apply 26-23 literal 2-11 cshift 26-23 long type 3-44 length 26-22 short type 3-44 max 26-22 type 3-44 min 26-22 type specifier 7-11 operator! 26-20 typedef and 7-3 operator!= 26-24 unsigned-suffix 2-11 operator% 26-23 unspecified 18-15/16, 18, operator%= 26-21 20, 21-16, 25-24, 26-22, operator& 26-23 27-69/D-7, D-9/10 operator&& 26-23/24 address of member function operator&= 26-21 17-19 operator* 26-23 allocation 9-6, 11-3 operator*= 26-21 argument to constructor operator+ 26-20, 23 5-27 operator+= 26-21 behavior 1-5 operator- 26-20, 23 constructor and new 5-27 operator-= 26-21 order of argument operator/ 26-23 evaluation 5-8 operator/= 26-21 order of evaluation 3-32, operator< 26-24 5-1 operator<< 26-23 order of evaluation new operator<<= 26-21 5-27 operator<= 26-24 order of function call operator= 26-19 evaluation 5-8 operator== 26-24 pointer comparison 5-35 operator> 26-24 unwinding, stack 15-5 operator>= 26-24 up, name look 3-12 operator>> 26-23 upper_bound 25-26 operator>>= 26-21 uppercase 17-8, 15 operator[] 26-19/20 uppercase 27-27 operator^ 26-23 usefacet, locale 22-11 operator^= 26-21 user-defined operator| 26-23 conversion 12-6/7 operator|= 26-21 conversion and name hiding operator|| 26-23/24 12-9 operator~ 26-20 conversion, implicit 12-8 resize 26-23 conversion, inheritance of shift 26-22 12-8 sum 26-22 conversion, virtual 12-8 valarray 26-18 type, extension to C C-2 valarray 26-18 using-declaration 7-21 ~valarray 26-19 using-directive 7-28 ~valarray, valarray 26-19 usual arithmetic conversions va_list 17-15 5-2 value x X FO 5950 x X NP 650 DRAFT: 2 December 1996 Index 55 call by 5-8 function call, undefined null member pointer 4-6 pure 10-15 null pointer 4-6 function definition 10-11 of char literal, function definition, pure implementation-defined 10-13 2-14 function example 10-10/11 of enumerator 7-14 function example, pure of multicharacter literal, 10-13 implementation-defined function, pure 10-13/14 2-13 member function 17-16, 19 representation 3-42 user-defined conversion undefined unrepresentable 12-8 integral 4-6 virtual variable and friend 10-11 argument list 8-13 and multiple inheritance indeterminate 10-11 uninitialized 8-21 specifier 7-7 parameter list 5-8, 8-13 visibility 3-12 parameter list example void 8-13 parameter 8-13 23-15 type 3-46 vector 23-30 type specifier 7-11 assign 23-32 void& 8-8 capacity 23-33 void* erase 23-34 conversion, pointer to insert 23-33 member 4-7 operator< 23-32 pointer comparison 5-34 operator== 23-32 pointer type extension to reserve 23-33 C C-2 resize 23-33 type 3-47 vector 23-32 volatile 3-47 vector 23-32 constructor and 9-11, vector 23-34 12-2 operator< 23-37 destructor and 9-11, operator== 23-37 12-10 vertical tab 2-13 extension to C C-2 viable function 13-6 implementation-defined virtual 7-11 base class 10-3 member function 9-11 base class DAG 10-4 overloading and 13-3 base class dominance 10-7 type 7-9 base class initialization type specifier 7-11 12-20, 29 base class initialization, order of 12-19 W destructor 12-11 wcerr 27-7 destructor, pure 12-11 D-1 function 10-8 wchart type-specifier 7-11 function access 11-12 wchar_t 2-13, 15, 17-9, function call 10-13 21-40 function call, constructor implementation-defined and 12-24 3-45 function call, destructor type 3-45 and 12-24 x X FO 5950 x X NP 650 56 Index DRAFT: 2 December 1996 underlying type 3-45 xsputn, basic_streambuf wcin 27-7 27-39 wclog 27-8 X(X&) -see copy constructor wcout 27-7 , 26 wcschr 21-41 wcspbrk 21-41 wcsrchr 21-41 Z wcsstr 21-41 zero D-1 pointer 4-6 well-formed program 1-5 undefined division by wfilebuf 27-5, 76 5-2, 31 wfstream 27-5 undefined modulus 5-2 what width of bit-field 9-16 bad_alloc 18-19 zero-initialization 8-21 bad_cast 18-22 bad_exception 18-24 bad_typeid 18-22 exception 18-24 ios_base::failure 27-12 while statement 6-4/5 white space 2-5 space 2-6 wide string literal 2-15 wide-character 2-13 string, null-terminated 17-9 widen basic_ios 27-24 ctype 22-15 ctype 22-20 width, ios_base 22-13, 27-17 wifstream 27-5, 76 wios 27-9 wistream 27-5, 40 wistringstream 27-5, 66 wmemchr 21-41 wofstream 27-5, 76 wostream 27-5, 40 wostringstream 27-5, 66 write, basic_ostream 27-62 ws 27-46, 53 wstreambuf 27-5, 29 wstreamoff 27-9 wstringbuf 27-5, 66 wstringstream 27-5 X xalloc, ios_base 27-18 xsgetn, basic_streambuf 27-37 x X FO 5950