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-28 / -see division operator & /* */ comment 2-5 -see address-of operator // comment 2-5 -see bitwise AND operator /= operator 5-28 reference declarator 8-7 : && -see logical AND operator field declaration 9-14 &= operator 5-28 label specifier 6-1 () :: -see function call -see scope resolution operator operator function declarator 8-11 scope resolution operator * 3-7 -see indirection operator ::*, pointer to member -see multiplication declarator 8-8 operator < pointer declarator 8-6 -see less than operator *= operator 5-28 template and 14-3 + << -see left shift operator -see addition operator <<= operator 5-28 -see unary plus operator <= -see less than or equal ++ -see increment operator to operator += operator 5-16, 28 = -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-28 >> -see right shift operator -> -see class member access >>= operator 5-28 operator ?: -see conditional expression operator x X FO 5950 x X NP 650 2 Index DRAFT: 27 May 1994 [] control, member function -see subscripting operator and 12-1 array declarator 8-9 control, overloading \ -see backslash resolution and 10-5 ^ -see bitwise exclusive OR declaration 11-3 operator declaration, overloaded ^= operator 5-28 name and 11-5 _ default assignment underscore character 2-6 operator 12-18 underscore in identifier default copy constructor 2-7 12-18 {} example, member name 11-3 block statement 6-2 member name 11-1 class declaration 9-1 overloading and 13-4 class definition 9-1 protected member 11-8 enum declaration 7-14 rules, template 14-19 initializer list 8-20 specifier 11-1/2 | -see bitwise inclusive OR specifier and friend 11-7 operator specifier and object |= operator 5-28 layout 11-2 || -see logical OR operator struct default member 9-1 ~ union default member 9-1 -see destructor virtual function 11-9 -see one's complement access-specifier 10-1 operator addition operator 5-23 0 additive operator 5-23 -see also zero, null additive-expression 5-23 null character 2-13 address string terminator 2-13 of bit-field 9-14 of bit-field restriction 9-14 A of constructor 12-2 abort() 3-13, 15-8 of overloaded function abs 17-232, 240, 247 5-15, 13-10 abstract of qualified name 5-15 class 10-10 address-of operator 5-15 class, constructor and adjustfield 17-43 10-12 adjusting base class member class, pointer to 10-11 access 11-3 abstract-declarator 8-3 adjustment access array parameter 8-12 adjusting base class function parameter 8-12 member 11-3 aggregate 8-20 ambiguity, member 10-4 initialization 12-12 and friend, class 11-7 alert 2-11 and friend function 11-6 alias 7-21 base class 11-2 alignment base class member 10-1 of bit-field 9-14 class member 5-6 of bit-field, control 11-1 implementation dependency control, anonymous union 9-14 9-13 requirement, control default 11-1 implementation dependency 3-18 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 3 17-2/3 old style function ALL 17-252 definition C-14 alloc::alloc 17-31 overload keyword C-13 alloc::~alloc 17-31 pointer to member allocation conversion C-15 function 3-14, 5-18, scope of nested class 12-10 C-16 implementation dependency this and constructor C-15 9-6, 11-2 this and destructor C-15 implementation dependency AND base class 10-2 operator, bitwise 5-26 implementation dependency operator, logical 5-27 bit-field 9-14 operator, side effects and new, storage 5-17 logical 5-27 alloc::do_raise 17-31 anonymous alloc::what 17-31 union 9-13 allowing an exception 15-7 union access control 9-13 ALNUM 17-252 union, extension to C C-2 ALPHA 17-252 union, global 9-13 altermate definition 17-7 union restriction 9-13 ambiguity app 17-43 base class member 10-4 arg 17-233, 240, 248 class conversion 10-6 argc 3-12 declaration type 7-3 argument 1-2, 17-5/6, 10, declaration versus cast 18, 21, 27, 29, 37, 39, 8-3 53, 105/107, 139, 191/192, declaration versus 199/200, 212, 214, expression 6-8 216/217, 266/267, 272 detection, overloaded and name hiding, default function 13-4 8-15 function declaration 8-18 binding of default 8-14 if-else 6-3 class object as 12-13 member access 10-4 conversion 5-5, 8-12 parentheses and 5-17 declaration, default 8-14 pointer conversion 4-3 deduction, template 14-22 pointer to member evaluation of default conversion 4-4 8-14/15 reference conversion 4-3 evaluation, order of 5-6 resolution, scoping 10-5 evaluation, unspecified Amendment 1 17-1, 5, 62 order of 5-6 anachronism C-13 example of default 8-14 C function definition list, empty 8-11 C-14 list, variable 8-11 assignment to this C-15 matching -see overloading cast of pointer to member resolution C-15 overloaded operator and free store and constructor default 13-12 C-15 overloading and default free store and destructor 8-15 C-15 passing 5-5 memory management C-15 passing, reference and nonnested class C-16 8-22 old style base class reference 5-5 initializer C-14 x X FO 5950 x X NP 650 4 Index DRAFT: 27 May 1994 scope of default 8-15 order of execution, specification, template destructor and 12-8 14-21 overloading and pointer substitution 16-7 versus 13-2 template 14-18 parameter adjustment 8-12 temporary and default pointer conversion 4-3 12-4 size, default 8-10 to constructor, sizeof 5-16 unspecified 5-20 storage of 8-10 type checking 5-5 type 3-19, 8-12 type checking of default arrow operator -see class 8-14 member access operator type conversion 12-4 asm type, unknown 8-11 declaration 7-27 argv[] 3-12 implementation dependency arithmetic 7-27 conversion 4-1 assembler 7-27 exception 5-1 17-3 exception, implementation assignment dependency 5-1 and initialization, extension to C single overloaded 12-13 precision C-1 and lvalue 5-28 pointer 5-23 base class object 5-29 single precision floating const pointer 5-28 point 4-1 conversion by 5-29 type 3-19 derived class object 5-29 unsigned 3-18 expression 5-28 array extension to C memberwise bound 8-9 C-2 const 7-10 member 12-18 constructor and 5-19 memberwise 13-13 declaration 8-9 of class object 12-19 declarator [] 8-9 of derived class to base declarator, class 12-19 multidimensional 8-10 operator 5-28, 12-17, default constructor and 17-10, 42, 212 5-19 operator access, default delete 5-20 12-18 example 8-10 operator, default 13-13 initialization 8-20 operator, default member 9-5 12-17/19 multidimensional 8-10 operator, overloaded new 5-18 13-13 of class objects and operator restriction, constructor 12-13 default 12-18 of class objects and pointer to const 5-28 default constructor 12-13 pointer to member 5-29 of class objects and new pointer to volatile 5-28 5-19 reference 8-22 of class objects to class object 5-29 initialization 8-21, to pointer 5-28 12-13 to pointer to member 5-29 order of execution, to pointer to member, zero constructor and 12-2 5-29 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 5 to pointer, zero 5-28 class, direct 10-1 to reference 5-29 class, indirect 10-1 to this anachronism C-15 class initialization volatile pointer 5-28 12-14 assignment-expression 5-28 class initialization, assignment-operator 5-28 order of 12-14 associated sequence 17-67, class initializer 8-16 140, 142, 147/148 class initializer ate 17-43 anachronism, old style atexit 17-19 C-14 atexit() 3-13 class member access 10-1 auto class member access, destruction of 6-6/7 adjusting 11-3 initialization 6-7 class member ambiguity object initialization 10-4 8-17 class object, assignment restriction 7-3 5-29 specifier 7-3 class pointer conversion storage duration 3-14 4-3 automatic initialization class, private 11-2 6-7 class, public 11-2 class, reference to 4-3 class virtual -see virtual B base class backslash character 2-11 of integer literal 2-9 backspace 2-11 basefield 17-43 badbit 17-43 base-specifier 10-1 bad_cast::bad_cast 17-26 base-specifier-list 10-1 bad_cast::~bad_cast 17-26 beg 17-43 bad_typeid 5-10 behavior bad_type_id::bad_type_id default 17-8, 24, 35, 17-40 37/39, 75/76, 78/80, 119, bad_type_id::~bad_type_id 129, 262 17-40 implementation-defined bad_typeid::do_raise 17-40 1-2 base locale-specific 1-2 class 17-8/9, 13/14, 22, required 17-8 24/33, 40, 45, 47, 67, 79, undefined 1-3 85, 99, 111/112, 120/122, unspecified 1-3 124/125, 130/132, 134, Ben 13-3 141/142, 144, 147/148, bin 17-43 222/223, 282 binary class 10-1/2 mode 17-50 class access 11-2 operator, interpretation class allocation, of 13-13 implementation dependency operator, overloaded 10-2 13-13 class, assignment of binding derived class to 12-19 -see virtual function, class cast 5-10 dynamic class constructor order of of default argument 8-14 execution 12-2 bit-field 9-14 class destructor order of address of 9-14 execution 12-8 x X FO 5950 x X NP 650 6 Index DRAFT: 27 May 1994 alignment of 9-14 bit_string::operator!= allocation, implementation 17-208 dependency 9-14 bit_string::operator&= declaration 9-14 17-201 implementation dependency bit_string::operator+= alignment of 9-14 17-201 implementation dependency bit_string::operator<< sign of 9-14 17-209 layout 9-14 bit_string::operator<<= restriction 9-14 17-202 restriction, address of bit_string::operator== 9-14 17-208 restriction, pointer to bit_string::operator>> 9-14 17-209 type of 9-14 bit_string::operator>>= unnamed 9-14 17-202 zero width of 9-14 bit_string::operator^= bit-fields, Boolean 3-19 17-202 bitmask type 17-12/13, 46, bit_string::operator|= 48/50, 110, 257/258 17-201 17-2, 190 bit_string::operator~ bits::any 17-195 17-209 bits::bits 17-191 bit_string::remove 17-204 bits::count 17-195 bit_string::replace 17-204 bits::length 17-195 bit_string::reset 17-205 bits::operator!= 17-195 bit_string::resize 17-206 bits::operator&= 17-192 bit_string::rfind 17-207 bits::operator<< 17-196 bit_string::set 17-205 bits::operator<<= 17-192 bit_string::substr 17-208 bits::operator== 17-195 bit_string::test 17-208 bits::operator>> 17-196 bit_string::toggle 17-205 bits::operator>>= 17-193 bit_string::to_string bits::operator^= 17-192 17-206 bits::operator|= 17-192 bit_string::trim 17-207 bits::operator~ 17-194 bitwise bits::reset 17-193 AND operator 5-26 bits::set 17-193 exclusive OR operator bits::test 17-195 5-26 bits::toggle 17-194 inclusive OR operator bits::to_string 17-194 5-26 bits::to_ulong 17-194 operator 5-26 bits::to_ushort 17-194 block 17-2, 197 initialization in 6-7 bit_string::any 17-208 scope -see local scope bit_string::append 17-203 statement {} 6-2 bit_string::assign 17-203 structure 6-7 bit_string::bit_string body, function 8-15 17-199/200 bool bit_string::count 17-206 increment 5-8, 16 bit_string::find 17-207 integer conversion 4-24 bit_string::insert 17-203 type-specifier 7-11 bit_string::length 17-206 Boolean bit_string::none 17-208 bit-fields 3-19 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 7 constant 2-14 memberwise initialization, conversion 4-5 extension to C-2 literal 2-14 multiple inheritance, type 3-18 extension to C-2 type 3-19 new, extension to C-2 boolean-literal 2-14 overloading delete, bound array 8-9 extension to C-2 bound, of array 8-9 overloading, extension to bound pointer to member C-1 function, undefined C-15 overloading new, extension break statement 6-6 to C-2 btowc 17-265 pointer to member, buffer, stream 17-46/47, extension to C-2 50, 67, 80, 83/84, 95/97, protected, extension to 109, 122, 132, 144, C-2 149/150 reference type, extension buffered file 17-19, to C-1 143/149 single precision built-in type -see arithmetic, extension to fundamental type C-1 byte 5-16 stream 17-19, 50, 86, 149 string, null-terminated summary, compatibility 17-15 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-13 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-5 difference from C-1 by value 5-5 extension to C-1/2 operator function 13-12 function definition calloc 17-18, 37 anachronism C-14 capacity 17-21 header 17-3/5, 10, 16, 20 carriage return 2-11 headers, ISO 2-8 case label 6-1, 3/4 implementation dependency 17-2/3 extension to C-13 cast inline function, extension ambiguity, declaration to C-1 versus 8-3 library, Standard 17-1/3, base class 5-10 5, 16, 38 class object 5-12 linkage to 7-28 const 5-14 memberwise assignment, derived class 5-10 extension to C-2 x X FO 5950 x X NP 650 8 Index DRAFT: 27 May 1994 dynamic 5-8, 17-26 character implementation dependency array initialization 8-21 pointer to function 5-13 constant 2-11 integer to pointer 5-13 decimal-point 17-14, 48 lvalue 5-12, 14 literal 2-11 of pointer to member literal, type of 2-11 anachronism C-15 multibyte 1-2 operator 5-15, 21, 8-2 signed 3-18 pointer to function 5-13 string 2-13 pointer to integer 5-13 type 3-18 pointer to member 5-11, underscore 17-4/5 14 character-literal 2-10 reference 5-11, 14 checking reinterpret 5-13 point of error 14-4 reinterpret_cast, lvalue syntax 14-4 5-14 17-2 cast, reinterpret_cast, class 3-20, 9-1 reference 5-14 abstract 10-10 cast access and friend 11-7 static 5-10 anachronism, nonnested static_cast, class object C-16 5-12 and type 9-1 static_cast, lvalue 5-12 base 17-8/9, 13/14, 22, cast, static_cast, reference 24/33, 40, 45, 47, 67, 79, 5-11 85, 99, 111/112, 120/122, cast to incomplete class 124/125, 130/132, 134, 5-13 141/142, 144, 147/148, cast-expression 5-21 222/223, 282 casting 5-6, 21 base -see base class catch 15-1 cast to incomplete 5-13 c-char 2-10 constructor and abstract c-char-sequence 2-10 10-12 17-2, 86/87, 171, conversion 12-4 258/259 conversion ambiguity 10-6 17-2, 5 declaration, forward 9-3, 17-2, 4 10-1 C++ declaration {} 9-1 header 17-2/4 definition 9-1, 4 library, Standard 17-1/3, definition 3-4 6/8, 13/14, 20, 22, 27/30, definition example 9-5 36/39, 47, 62, 150, 272 definition name hiding change to string literal, 9-2 undefined 2-13 definition, scope of 9-2 char definition {} 9-1 implementation dependency derived 17-13 sign of 3-18 derived -see derived class integer conversion 4-24 extension to C C-2 literal, implementation friend 11-6 dependency value of 2-12 generated 14-10 type 3-18 linkage of 3-9 type, signed 3-18 linkage specification type specifier 7-11 7-28 type, unsigned 3-18 local -see local class x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 9 member -see also member objects initialization, member access 5-6 array of 8-21, 12-13 member access operator pointer to abstract 10-11 5-6 polymorphic 10-7 member declaration 9-4 reference type 8-18 member function 9-9 scope 3-6 member initialization scope of enumerator 7-16 8-18 sizeof, empty 9-1 member semantics 5-6 specialized 14-10 member, static 3-14 template 14-3, member storage duration 17-105/107, 190, 210/211, 3-14 222 member syntax 5-6 type restriction, member name 8-2 of 12-13 name as type definition unnamed 7-8 9-2 class name declaration 3-2 type specifier 7-13 name, elaborated 7-13, versus struct 9-1 9-3 versus union 9-1 name, point of declaration class-key 7-13, 9-1 9-4 class-name 9-1 name, scope of 9-2 class-specifier 9-1 name, typedef 7-8, 9-4 3-18, 17-2, 4, nested -see nested class 86, 93, 112, 171, 191 object as argument 12-13 17-2, 14, 257, object, assignment of 259, 271/272 12-19 17-2 object, assignment to CNTRL 17-252 5-29 COLLATE 17-252 object cast 5-12 comma object cast, static_cast, operator 5-29 5-12 operator, side effects and object, const 7-10, 9-10 5-29 object copy 12-17 comment 2-3 object copy -see also copy /* */ 2-5 constructor // 2-5 object copy example 12-19 comparison object initialization implementation dependency 8-20, 12-12 pointer 5-25 object initialization -see pointer 5-25 also constructor pointer to function 5-25 object layout 9-6, 10-2 undefined pointer 5-24/25 object, member 9-5 void* pointer 5-25 object, operations on 9-1 compatibility object return type 12-13 with C summary C-1 object, sizeof 5-16 with ISO C summary C-3 objects and constructor, compilation, separate 2-1 array of 12-13 compiler control line -see objects and default preprocessing directive constructor, array of complete object 1-4 12-13 completely-defined object objects and new, array of type 3-17 5-19 17-2, 227 x X FO 5950 x X NP 650 10 Index DRAFT: 27 May 1994 compound constant 2-8, 3-20, 5-2 statement 6-2 character 2-11 type 3-19 enumeration 7-15 compound-statement 6-2 expression 5-30 concatenation expression, pointer to string 2-13 member 5-15 undefined string literal initializer 9-4 2-13 integer 2-9 condition conversion 4-5 long 2-9 condition 6-2 pointer declaration 8-6 conditional pointer example 8-6 expression operator 5-27 unsigned 2-9 inclusion 16-3 constant-expression 5-30 conditional-expression, constant-initializer 9-4 throw-expression in 5-27 construction, order of 3-14 conditions, rules for 6-3 constructor 12-1 conj 17-233, 240, 248 access, default copy consistency 12-18 example, linkage 7-4 address of 12-2 linkage 7-4 anachronism, free store linkage specification and C-15 7-28 anachronism, this and type declaration 3-11 C-15 const cast 5-14 and abstract class 10-12 *const example 8-6 and array 5-19 const 3-21 and array order of array 7-10 execution 12-2 assignment, pointer to and const 9-11, 12-1 5-28 and initialization 12-12 class object 7-10, 9-10 and initialization example constructor and 9-11, 12-12 12-1 and member function 12-3 destructor and 9-11, 12-7 and member function call example 8-6 12-16 extension to C C-1 and new 5-19 initialization 7-9, 8-17 and new, implementation initialization, pointer to dependency 5-20 8-17 and return 6-6 linkage of 3-9, 7-4 and static objects order member function 9-10 of execution 12-13 member initialization and virtual function call 12-14 12-16 operand 5-2 and volatile 9-11, 12-1 overloading and 13-1/2 array of class objects and pointer assignment 5-28 12-13 pointer initialization call, explicit 12-2 8-17 conversion by 12-4 reference 8-22 conversion by -see also type 7-8 user-defined conversion void* pointer conversion copy 12-1, 3, 17, 17-10, 4-2 42, 212 volatile void* pointer default 17-24, 71, conversion 4-2 211/213, 220 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 11 default -see default function -see also user- constructor defined conversion default copy 12-17/19 implementation defined definition 8-16 pointer integer 5-13 example 12-2 implementation dependency exception handling 15-4 floating point 4-1 for temporary 12-3 implementation dependency inheritance of 12-1 integer 4-1 local object 3-14 implicit 4-24, 5-2, 12-4 order of execution, base implicit user-defined class 12-2 12-6 order of execution, member inheritance of user- 12-2 defined 12-6 restriction 12-1/2 integer 4-24 restriction, default copy lvalue 4-24 12-18 null pointer 4-3 type of 12-2 operator 5-2, 12-5 union 9-13 out of range value, unspecified argument to undefined 4-1 5-20 overloaded function and continue standard 13-8 in for statement 6-5 overloading resolution and statement 6-6 13-6 control line -see overloading resolution and preprocessing directive pointer 13-11 conversion overloading resolution and -see also type conversion standard 13-8 Boolean 4-5 overloading resolution and ambiguity, class 10-6 user-defined 13-8/9 ambiguity, pointer 4-3 pointer 4-2 ambiguity, pointer to pointer to function 4-3 member 4-4 pointer to member 4-4 ambiguity, reference 4-3 pointer to member void* anachronism, pointer to 4-4 member C-15 reference 4-3 and name hiding, user- return type 6-6 defined 12-7 rules, type 4-1 argument 5-5, 8-12 safe floating point 4-1 arithmetic 4-1 signed unsigned integer array pointer 4-3 4-24 base class pointer 4-3 standard 4-24 bool integer 4-24 to enumeration type 5-11 by assignment 5-29 to enumeration type, by constructor 12-4 static_cast, 5-11 char integer 4-24 type of 12-5 class 12-4 user-defined 5-2, 12-4/5 condition 4-5 virtual user-defined 12-6 const void* pointer 4-2 void* pointer 4-2 const volatile void* volatile const void* pointer 4-2 pointer 4-2 derived class pointer 4-3 volatile void* pointer explicit type -see casting 4-2 floating point integer zero pointer 4-3 4-1 x X FO 5950 x X NP 650 12 Index DRAFT: 27 May 1994 conversion-function-id 12-5 virtual base class 10-3 conversions dangerous extension to C cv-qualifier pointer 4-2 C-13 cv-qualifier reference data member -see member 4-3 deallocation copy -see delete class object 12-17 function 3-15, 5-21, constructor 12-1, 3, 17, 12-10 17-10, 42, 212 dec 17-43, 58, 86, 100 constructor access, decimal literal 2-9 default 12-18 decimal-literal 2-9 constructor, default decimal-point character 12-17/19 17-14, 48 constructor, implicitly- declaration 3-1/2, 7-1 declared 12-2 :, field 9-14 constructor restriction, access 11-3 default 12-18 ambiguity, function 8-18 example, class object array 8-9 12-19 as definition 7-2 cos 17-233, 240, 248 asm 7-27 cosh 17-233, 240, 248 bit-field 9-14 __cplusplus 16-13 class member 9-4 5-24 class name 3-2 17-2, 5 class name, point of 9-4 17-2 consistency, type 3-11 17-2, 4/5 constant pointer 8-6 5-16, 17-2, 4 default argument 8-14 17-2, 11, 50, 60, definition versus 3-2 62, 84, 97, 132, 135/140, ellipsis in function 5-5, 144, 149/150 8-11 3-12/13, 17-2, 4, enumerator, point of 3-8 16, 34/35, 37, 39 example 3-3, 8-13 17-2, 15, 112, example, function 8-13 122, 156, 168, 268 extern 3-2 17-2, 252, 269 extern, point of 3-8 ctor-initializer 12-14 extern reference 8-22 CTYPE 17-252 forward 7-5 17-3 forward class 9-3, 10-1 cur 17-43 friend, point of 3-8 cv-qualifier 3-21 function 3-2, 8-11 pointer conversions 4-2 function member 9-9 reference conversions 4-3 function template 14-26 cv-qualifier 8-2 hiding -see name hiding 17-2, 5, 15, 21, in for, scope of 6-5 176, 187, 265, 268 in for statement 6-5 17-2, 5, 266/267 in switch statement 6-4 matching, overloaded function 13-3 D member 9-4 DAG multiple 3-11 multiple inheritance 10-3 name 3-2 nonvirtual base class name, point of 3-8 10-3 overloaded name and access 11-5 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 13 overloaded name and friend argument, binding of 8-14 11-6 argument declaration 8-14 parameter 8-11/12 argument, evaluation of parentheses in 8-3, 6 8-14/15 pointer 8-6 argument, example of 8-14 reference 8-7 argument, overloaded register 7-4 operator and 13-12 scope of friend 3-6 argument, overloading and specifier 7-2 8-15 statement 6-7 argument, overloading statement, extension to C resolution and 13-5 C-2 argument, scope of 8-15 static member 3-2 argument, temporary and storage class 7-3 12-4 type 8-5 argument, type checking of type ambiguity 7-3 8-14 typedef 3-2 array size 8-10 typedef as type 7-7 assignment operator 13-13 versus cast ambiguity 8-3 assignment operator versus expression 12-17/19 ambiguity 6-8 assignment operator access {}, class 9-1 12-18 {}, enum 7-14 assignment operator declaration 7-1 restriction 12-18 declaration-seq 7-28 behavior 17-8, 24, 35, declaration-statement 6-7 37/39, 75/76, 78/80, 119, declarative region 3-1 129, 262 declarator 7-1, 8-1 constructor 17-24, 71, &, reference 8-7 211/213, 220 (), function 8-11 constructor 12-1, 13, 17 *, pointer 8-6 constructor and array ::*, pointer to member 5-19 8-8 constructor and [], array 8-9 initialization 12-12 example 8-3 constructor and new 5-19 initializer, temporary and constructor, array of 12-4 class objects and 12-13 meaning of 8-5 copy constructor 12-17/19 multidimensional array copy constructor access 8-10 12-18 declarator 8-2 copy constructor declarator-id 8-2 restriction 12-18 decl-specifier 7-2 destructor 12-8 decrement initialization 8-18 operator 5-8, 15/16 member access, struct 9-1 operator, overloaded member access, union 9-1 13-14 template parameter 14-16 deduction, template argument default label 6-1, 3/4 14-22 default_size 17-21 default #define 16-7 access control 11-1 17-2, 20 argument and name hiding definition 3-2, 17-14 8-15 altermate 17-7 x X FO 5950 x X NP 650 14 Index DRAFT: 27 May 1994 and initialization 7-2 undefined value 5-21 class 3-4 delete[], operator 17-8, class 9-1, 4 37, 39 class name as type 9-2 deleted object, undefined constructor 8-16 3-16, 5-21 declaration as 7-2 delete-expression 5-20 enumerator 3-4 dependent name 14-7 enumerator point of 7-15 deprecated features 5-8, 16 example 3-3 dereferencing 5-2 example, function 8-16 -see also indirection example, nested class derivation -see inheritance 9-15 derived function 3-4 class 17-13 function 8-15 class 10-1 function template 14-26 class cast 5-10 inline member function class example 10-2 3-11 class, most 12-15 local class 9-16 class object, assignment member 9-10 5-29 member function 9-9/11 class, overloading and name hiding, class 9-2 13-3 namespace 7-17 class pointer conversion nested class 9-14 4-3 object 3-4 class to base class, of template 14-1 assignment of 12-19 pure virtual function destruction 10-11 of auto 6-6/7 scope, macro 16-9 of local static 6-8 scope of class 9-2 of local variable 6-6/7 scope of function 3-6 of temporary 12-3 static member 9-12 of temporary, order of versus declaration 3-2 12-4 virtual function 10-8 order of 3-14 {}, class 9-1 destructor 12-7, 17-10, 34, definitions, 149, 212 implementation-generated anachronism, free store 3-3 and C-15 delete anachronism, this and array 5-20 C-15 object 5-20 and array order of delete 3-14, 5-20/21, 12-10 execution 12-8 destructor and 5-21, 12-8 and const 9-11, 12-7 example 12-11 and delete 5-21, 12-8 example, destructor and and delete example 12-11 12-11 and exception, explicit example, scope of 12-11 12-10 extension to C C-2 and exit from scope 6-6 extension to C overloading and fundamental type 12-9 C-2 and member function 12-8 operator 17-8, 36/38 and member function call overloading and 3-15 12-16 type of 12-11 and placement of object undefined 5-20 12-9 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 15 and static objects order operator 5-22 of execution 12-13 DMY 17-252 and virtual function call do statement 6-4/5 12-16 domain::domain 17-32 and volatile 9-11, 12-7 domain::~domain 17-32 call example, explicit domain::do_raise 17-32 12-9 domain::what 17-32 call, explicit 12-8/9 dominance, virtual base call, implicit 12-8 class 10-6 call, unspecified 6-8 dot operator -see class default 12-8 member access operator exception handling 15-4 double quote 2-11 extension to C C-2 double for temporary 12-3 literal 2-12 inheritance of 12-8 type 3-19 local object 3-14 type specifier 7-11 order of execution 12-8 _double_complex 17-236, order of execution, base 242/247 class 12-8 double_complex::double_complex order of execution, member 17-235/236 12-8 DOWN 17-252 program termination and dynamic 12-8 binding -see virtual pure virtual 12-8 function restriction 12-7/8 cast 5-8, 17-26 static object 3-13 initialization 3-13 union 9-13 storage duration 3-14, virtual 12-8 5-17 diagnostic message 1-2 type 1-2 difference from C expression 17-2, 210 evaluation C-1 dyn_array 17-211/214, DIGIT 17-252 220, 222/223 digit 2-6 digit-sequence 2-12 digraph 2-4, 8 E direct base class 10-1 E suffix 2-12 direct-abstract-declarator \*C 8-3 header 17-16 direct-declarator 8-2 library, Standard 17-16 directed acyclic graph -see elaborated DAG class name 7-13, 9-3 directive enum name 7-13 error 16-12 type specifier 14-20 null 16-12 type specifier 3-7 pragma 16-12 type specifier -see preprocessing 16-1 elaborated class name direct-new-declarator 5-17 elaborated-type-specifier distinct string 2-13 7-12 division #elif 16-3 by zero, undefined 5-1, elimination of temporary 23 12-3 implementation dependency ellipsis 5-23 example 8-13 x X FO 5950 x X NP 650 16 Index DRAFT: 27 May 1994 in function declaration 17-3 5-5, 8-11 error overloading resolution and checking, point of 14-4 13-5, 7/8 directive 16-12 #else 16-4 #error 16-12 else 6-2 escape empty character -see backslash argument list 8-11 sequence 2-11 class sizeof 9-1 sequence, undefined 2-11 statement 6-1 escape-sequence 2-10 end 17-43 evaluation #endif 16-4 difference from C endl 17-100, 104 expression C-1 end-of-file 17-50, 60, 87, new, unspecified order of 89, 91/94, 103, 171/172, 5-20 196, 210 of default argument ends 17-104 8-14/15 entity 3-1 of expression, order of enum name, typedef 7-8 5-1 enum order of argument 5-6 declaration {} 7-14 unspecified order of 5-1 name, elaborated 7-13 unspecified order of overloading and 13-2 argument 5-6 type of 7-14/15 unspecified order of type specifier 7-12 function call 5-6 enumerated type 3-18, exact match, overloading 17-11/12, 21, 46, 50, 257, resolution 13-7 259 example enumeration 7-14 *const 8-6 constant 7-15 array 8-10 example 7-16 class definition 9-5 type, conversion to 5-11 class object copy 12-19 type, static_cast, const 8-6 conversion to 5-11 constant pointer 8-6 underlying type 7-15 constructor 12-2 enumerator constructor and class, scope of 7-16 initialization 12-12 definition 3-4 declaration 3-3, 8-13 member 7-16 declarator 8-3 point of declaration 3-8 definition 3-3 point of definition 7-15 delete 12-11 redefinition 7-15 derived class 10-2 restriction 7-15 destructor and delete value of 7-15 12-11 enumerator 7-14 ellipsis 8-13 environment, program 3-12 enumeration 7-16 EOF 17-60 explicit destructor call eofbit 17-43 12-9 equality operator 5-26 explicit qualification equality-expression 5-26 10-5 equivalence friend 9-3 template type 14-21 friend function 11-6 type 7-7, 9-2 function declaration 8-13 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 17 function definition 8-16 exception::set_raise_handler linkage consistency 7-4 17-23 local class 9-16 exception-specification member function 9-9, 11-6 15-6 member name access 11-3 exception::what 17-23, nested class 9-14 25/30, 32/33, 47 nested class definition exit from scope, destructor 9-15 and 6-6 nested class forward exit 17-19/20, 35, 39 declaration 9-16 exit() 3-12/13 nested type name 9-17 EXIT__FAILURE 17-19 of default argument 8-14 EXIT__SUCCESS 17-19 of incomplete type 3-17 exp 17-233, 240, 248 overloading 13-1 explanation, subscripting pointer to member 8-8 8-10 pure virtual function explicit 10-11 constructor call 12-2 scope of delete 12-11 destructor and exception scope resolution operator 12-10 10-5 destructor call 12-8/9 static member 9-12 destructor call example subscripting 8-10 12-9 type name 8-3 instantiation syntax typedef 7-7 14-13 unnamed parameter 8-16 qualification 3-7, 7-27 variable parameter list qualification example 8-13 10-5 virtual function 10-7, 9 type conversion -see exception casting allowing an 15-7 exponent-part 2-12 and new 5-19 expression 5-1 arithmetic 5-1 ambiguity, declaration declaration scope 3-5 versus 6-8 explicit destructor and assignment 5-28 12-10 constant 5-30 handler 15-4, 17-7, 34 evaluation, difference handler, from C C-1 incomplete@type@in 15-4 order of evaluation of handling 15-1 5-1 handling constructor 15-4 parenthesized 5-3 handling destructor 15-4 pointer to member constant implementation dependency 5-15 arithmetic 5-1 postfix 5-4 throwing 15-2 primary 5-2 17-2, 21, 39 reference 5-2 exception-declaration 15-1 statement 6-1 exception::do_raise unary 5-15 17-24/33, 40, 48 unspecified 5-6 exception::exception expression 5-29 17-23/24 expression-list 5-4 exception::~exception 17-23 expression-statement 6-1 exception::raise 17-23 extension exception::raise_handler to C C-1/2 17-23 x X FO 5950 x X NP 650 18 Index DRAFT: 27 May 1994 to C anonymous union C-2 fflush 17-140 to C class C-2 fgetc 17-137/138, 144 to C const C-1 field declaration : 9-14 to C, dangerous C-13 File scope 3-6 to C declaration statement file 2-1 C-2 buffered 17-19, 143/149 to C delete C-2 open 17-50 to C destructor C-2 scope 17-4/5 to C, implementation seek 17-50 dependency C-13 source 2-1, 17-2/3 to C inline function C-1 unbuffered 17-149 to C memberwise assignment FILE 17-11, 132/133, 144, C-2 147/148 to C memberwise filebuf::close 17-135 initialization C-2 filebuf::filebuf 17-134 to C multiple inheritance filebuf::~filebuf 17-134 C-2 filebuf::is_open 17-134 to C new C-2 filebuf::open 17-134 to C overloading C-1 filebuf::overflow 17-135, to C overloading delete 145 C-2 filebuf::pbackfail 17-136, to C overloading new C-2 145 to C pointer to member filebuf::seekoff 17-139, C-2 146 to C protected C-2 filebuf::seekpos 17-139, to C reference type C-1 146 to C single precision filebuf::setbuf 17-140, 146 arithmetic C-1 filebuf::showmany 17-137 to C type checking C-1 filebuf::sync 17-140, 146 to C user-defined type filebuf::uflow 17-138, 145 C-2 filebuf::underflow 17-137, to C, void* pointer type 145 C-2 filebuf::xsgetn 17-138 to C volatile C-2 filebuf::xsputn 17-138 extern final overrider 10-7 "C" 17-5 fIoctal-digit 2-9 "C++" 17-5 fixed 17-43, 58 declaration 3-2 float linkage of 7-4 literal 2-12 linkage specification type 3-19 7-28 type specifier 7-11 point of declaration 3-8 _float_complex 17-229 reference declaration float_complex::float_complex 8-22 17-228 restriction 7-4 floatfield 17-43 external linkage 3-9, 17-5 2-8, 17-3 floating point arithmetic, single F precision 4-1 F suffix 2-12 point conversion, f suffix 2-12 implementation dependency failbit 17-43 4-1 fclose 17-135 point conversion, safe 4-1 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 19 point integer conversion example 9-3 4-1 function, access and 11-6 point literal 2-12 function example 11-6 point literal, type of function, inline 11-7 2-12 function, linkage of 11-7 point type 3-18 function, member function point type 3-19 and 11-6 point type, implementation function, nested class dependency 3-19 9-16 floating-constant 2-12 inheritance and 11-7 floating-suffix 2-12 member function 11-6 flush 17-51, 85/86, 96, point of declaration 3-8 100, 104/105, 140 specifier 7-8 fopen 17-134/135 template and 14-29 for virtual and 10-9 scope of declaration in fscanf 17-84 6-5 fsetpos 17-139 statement 6-4/5 17-2, 11, 132 statement, continue in function 6-5 -see also friend function, statement, declaration in member function, inline 6-5 function, virtual function form feed 2-11 allocation 3-14, 5-18, formal 12-10 argument -see also argument -see argument parameter body 8-15 argument -see parameter call 5-5 forward call evaluation, class declaration 9-3, unspecified order of 5-6 10-1 call operator 5-4, 13-11 declaration 7-5 call operator, overloaded declaration example, 13-13 nested class 9-16 call, recursive 5-6 fpos_t 17-62 call, undefined 5-11, fprintf 17-97 13/14 fputc 17-136, 144 cast, implementation fractional-constant 2-12 dependency pointer to free 5-13 store -see also new, cast, pointer to 5-13 delete comparison, pointer to store and constructor 5-25 anachronism C-15 conversion, pointer to store and destructor 4-3 anachronism C-15 deallocation 3-15, 5-21, friend 12-10 declaration, scope of 3-6 declaration 3-2, 8-11 function, scope of 11-7 declaration ambiguity specifier 17-14 8-18 friend declaration, ellipsis in access specifier and 11-7 5-5, 8-11 class 11-6 declaration example 8-13 class access and 11-7 declaration matching, declaration, overloaded overloaded 13-3 name and 11-6 x X FO 5950 x X NP 650 20 Index DRAFT: 27 May 1994 declarator () 8-11 type, destructor and 12-9 definition 8-15 fvoid_t 17-20 definition 3-4 definition anachronism, C C-14 G definition anachronism, generated old style C-14 class 14-10 definition example 8-16 constructor -see default definition, scope of 3-6 constructor generated 14-10 destructor -see default global 17-5, 10 destructor handler 17-8 function 14-10 linkage specification getline 17-81, 83, 92/93, 7-28 171 linkage specification global overloaded 7-29 anonymous union 9-13 member -see member function 17-5, 10 function name 3-6 member declaration 9-9 scope 3-6 name hiding 13-3 goodbit 17-43 name, overloaded 13-1 goto operator 13-11 initialization and 6-7 overloaded -see also statement 6-1, 6/7 overloading grammar A-1 parameter -see parameter GRAPH 17-252 parameter adjustment 8-12 greater pointer to member 5-22 than operator 5-25 prototype scope 3-5 than or equal to operator return -see return 5-25 return type -see return type scope 3-6 H scope of friend 11-7 handler specialized 14-10 exception 15-4, 17-7, 34 specifier 7-5 function 17-8 template 14-21 incomplete@type@in template declaration exception 15-4 14-26 handler 15-1 template definition 14-26 handler-seq 15-1 type 3-19, 8-11/12 header virtual -see virtual C 17-3/5, 10, 16, 20 function C++ 17-2/4 virtual member 17-8/10, \*C 17-16 79, 262 headers function-body 8-15 ISO C 2-8 function-definition 8-15 library 2-8 function-like macro 16-6 standard 2-8 function-specifier 7-5 hex number 2-12 fundamental hex 17-43, 58 type 3-18 hexadecimal literal 2-9 type conversion -see hexadecimal-digit 2-9 conversion, user-defined hexadecimal-escape-sequence conversion 2-11 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 21 hexadecimal-literal 2-9 dependency floating point hiding -see name hiding type 3-19 horizontal tab 2-11 dependency generation of temporary 12-3 dependency integer I conversion 4-1 id, qualified 5-3 dependency left shift identifier 2-6, 5-3, 7-1 5-25 _, underscore in 2-7 dependency linkage of identifier 2-6 main() 3-12 identities and overloading, dependency linkage operator 13-12 specification 7-28 id-expression 5-3 dependency modulus 5-23 id-expression 5-3 dependency object linkage #if 16-3, 17-6 7-29 if statement 6-2/3 dependency overflow 5-1 #ifdef 16-4 dependency parameters to if-else ambiguity 6-3 main() 3-12 #ifndef 16-4 dependency pointer ifstream::close 17-141 comparison 5-25 ifstream::ifstream dependency pointer 17-140/141 subtraction 5-24 ifstream::~ifstream 17-141 dependency pointer to ifstream::is_open 17-141 function cast 5-13 ifstream::open 17-141 dependency promotion of ifstream::rdbuf 17-141 wchar_t 4-24 imag 17-229, 231/233, 236, dependency range of types 238/240, 243, 246/248 2-8 imanip 17-106 dependency sign of bit- imanip::imanip 17-106 field 9-14 implementation dependency sign of char defined pointer integer 3-18 conversion 5-13 dependency signed unsigned dependency __STDC__ 16-13 4-1 dependency alignment of dependency sizeof bit-field 9-14 expression 5-16 dependency alignment dependency sizeof integral requirement 3-18 type 3-18 dependency allocation dependency sizeof type 9-6, 11-2 3-18 dependency arithmetic dependency string literal exception 5-1 2-13 dependency asm 7-27 dependency type of integer dependency base class literal 2-10 allocation 10-2 dependency type of dependency bit-field ptrdiff_t 5-24 allocation 9-14 dependency type of size_t dependency constructor and 5-16 new 5-20 dependency type of sizeof dependency division 5-23 expression 2-8 dependency extension to C dependency value of char C-13 literal 2-12 dependency floating point dependency value of conversion 4-1 multicharacter literal x X FO 5950 x X NP 650 22 Index DRAFT: 27 May 1994 2-11 of user-defined conversion dependency volatile 7-10 12-6 dependency wchar_t 3-19 init-declarator 8-1 limits 1-2 init-declarator-list 8-1 type 17-11 initialization 8-16 implementation-defined aggregate 12-12 17-3/4, 16, 19/20, 31, 38, and goto 6-7 53 and new 5-19, 12-13 behavior 1-2 array 8-20 implementation-dependent array of class objects 17-62, 86, 100 8-21, 12-13 implementation-generated auto 6-7 definitions 3-3 auto object 8-17 implicit automatic 6-7 conversion 4-24, 5-2, base class 12-14 12-4 character array 8-21 destructor call 12-8 class member 8-18 user-defined conversion class object 8-20, 12-12 12-6 class object -see also implicitly-declared constructor copy constructor 12-2 const 7-9, 8-17 default constructor 12-1 const member 12-14 in 17-43 const pointer 8-17 #include 16-4, 17-2/3 constructor and 12-12 inclusion default 8-18 conditional 16-3 default constructor and source file 16-4 12-12 incomplete definition and 7-2 class, cast to 5-13 dynamic 3-13 type 3-17 example, constructor and type, example of 3-17 12-12 incompletely-defined object extension to C memberwise type 3-17 C-2 incomplete@type@in exception in block 6-7 handler 15-4 jump past 6-4, 7 increment local object 3-14 bool 5-8, 16 local static 6-7 operator 5-8, 15/16 member 12-14, 18 operator, overloaded member object 12-14 13-14 non-trivial 12-12 indeterminate uninitialized order of 3-13/14, 10-2 variable 8-18 order of base class 12-14 indirect base class 10-1 order of member 12-14 indirection 5-15 order of virtual base operator 5-15 class 12-14 inequality operator 5-26 overloaded assignment and inheritance 10-1 12-13 -see also multiple parameter 5-5 inheritance pointer to const 8-17 and friend 11-7 pointer to volatile 8-17 of constructor 12-1 reference 8-8, 22 of destructor 12-8 reference member 12-14 of overloaded operator run-time 3-13 13-12 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 23 static member 9-12 conversion, implementation static object 3-13, defined pointer 5-13 8-17/18 conversion, implementation struct 8-20 dependency 4-1 union 8-21, 9-13 conversion, signed virtual base class 12-15, unsigned 4-24 18 literal 2-9 volatile pointer 8-17 literal, base of 2-9 initializer 8-17 literal, implementation base class 8-16 dependency type of 2-10 constant 9-4 literal, type of 2-10 list {} 8-20 to pointer cast 5-13 member 8-16 type 3-19 scope of member 12-16 integer-literal 2-9 temporary and declarator integer-suffix 2-9 12-4 integral initializer 8-17 promotion 4-24, 5-5 initializer-clause 8-17 type 3-18 initializer-list 8-17 type 3-19 injection from template, type, implementation name 14-9 dependency sizeof 3-18 inline 17-5 value, undefined friend function 11-7 unrepresentable 4-1 function 7-5 internal linkage 3-9 function, extension to C internal 17-43, 58 C-1 interpretation function, linkage of 7-4, of binary operator 13-13 6 of unary operator 13-12 member function 7-6, 9-11 INTL 17-252 member function definition invalid_argument::do_raise 3-11 17-27 member function rewriting invalid_argument::invalid_argument rules 9-11 17-27 inline invalid_argument::~invalid_argument linkage of 3-9 17-27 specifier 7-5 invalid_argument::what instantiation 17-27 and specialization 14-12 invocation, macro 16-7 multiple 14-12 17-2, 105 point of 14-10 17-2, 43 syntax, explicit 14-13 ios::bad 17-54 template 14-10 ios::clear 17-53 int ios::copyfmt 17-52 type 3-18 ios::eof 17-53 type specifier 7-11 ios::exceptions 17-54 type, unsigned 3-18 ios::fail 17-54 integer ios::failure::do_raise cast, pointer to 5-13 17-48 constant 2-9 ios::failure::failure 17-47 conversion 4-24 ios::failure::~failure conversion, bool 4-24 17-47 conversion, char 4-24 ios::failure::what 17-47 conversion, floating point ios::fill 17-55 4-1 x X FO 5950 x X NP 650 24 Index DRAFT: 27 May 1994 ios::flags 17-54 istream::~istream 17-85 ios::fmtflags 17-48, istream::operator>> 107/108 17-86/89 ios::good 17-53 istream::peek 17-94 ios::imbue 17-56 istream::putback 17-95 ios::init 17-57, 85, 99 istream::read 17-93/94 ios::Init::Init 17-51 istream::readsome 17-94 ios::Init::~Init 17-51 istream::sync 17-95 ios::ios 17-51, 57 istream::unget 17-95 ios::~ios 17-51 istringstream::istringstream ios::iostate 17-49 17-130 ios::iword 17-56 istringstream::~istringstream ios::openmode 17-49, 65, 17-130 68, 79/80, 109, 117/118, istringstream::rdbuf 17-131 123/125, 128/134, 139, istringstream::str 17-131 143, 146 istrstream::istrstream ios::operator! 17-51 17-120 ios::precision 17-55 istrstream::~istrstream ios::pword 17-57 17-120 ios::rdbuf 17-52 istrstream::rdbuf 17-121 ios::rdloc 17-56 iteration statement 6-4 ios::rdstate 17-53 iteration-statement 6-4, 6 ios::seekdir 17-50, 65, 68, scope 6-4 79, 109, 117, 123, 128, 133, 139, 143, 146 ios::setf 17-54/55 J ios::setstate 17-53 Jessie 12-5 ios::tie 17-52 jump 17-2, 50, 149 past initialization 6-4, ios::unsetf 17-55 7 ios::width 17-55/56 statement 6-6 ios::xalloc 17-56 jump-statement 6-6 ISO C headers 2-8 C summary, compatibility K with C-3 keyword A-1 17-3, 16 anachronism, overload isspace 17-86/87, 171, 258 C-13 istdiostream::buffered list 2-6 17-147/148 mutable 3-16 istdiostream::istdiostream 17-147 istdiostream::~istdiostream L 17-147 L istdiostream::rdbuf 17-147 prefix 2-11, 13 17-2, 80 suffix 2-10, 12 istream::gcount 17-95 l suffix 2-10, 12 istream::get 17-90/92 label 6-7 istream::getline 17-92/93 case 6-1, 3/4 istream::ignore 17-93 default 6-1, 3/4 istream::ipfx 17-85 name space 6-1 istream::isfx 17-86 scope of 3-6, 6-1 istream::istream 17-85 specifier : 6-1 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 25 labeled statement 6-1 of static 3-9, 7-4, 29 lattice -see DAG, sub-object specification 7-28 layout specification class 7-28 access specifier and specification consistency object 11-2 7-28 bit-field 9-14 specification, extern class object 9-6, 10-2 7-28 left specification function shift, implementation 7-28 dependency 5-25 specification, shift operator 5-24 implementation dependency shift, undefined 5-25 7-28 left 17-43, 58 specification object 7-29 length of name 2-6 specification overloaded length_error::do_raise function 7-29 17-28 to C 7-28 length_error::length_error linkage-specification 7-28 17-28 list length_error::~length_error keyword 2-6 17-28 operator 2-7, 13-11 length_error::what 17-28 {}, initializer 8-20 less literal 2-8, 5-2 than operator 5-25 base of integer 2-9 than or equal to operator character 2-11 5-25 decimal 2-9 lexical conventions 2-1 double 2-12 library float 2-12 Standard C 17-1/3, 5, 16, floating point 2-12 38 hexadecimal 2-9 Standard C++ 17-1/3, 6/8, implementation dependency 13/14, 20, 22, 27/30, string 2-13 36/39, 47, 62, 150, 272 implementation dependency Standard \*C 17-16 type of integer 2-10 headers 2-8 implementation dependency limits, implementation 1-2 value of char 2-12 2-8, 17-3 implementation dependency #line 16-11 value of multicharacter linkage 3-1/2, 9 2-11 and throw 3-10 integer 2-9 consistency 7-4 long 2-9/10 consistency example 7-4 long double 2-12 external 3-9, 17-5 multicharacter 2-11 implementation dependency octal 2-9 object 7-29 type of character 2-11 internal 3-9 type of floating point of class 3-9 2-12 of const 3-9, 7-4 type of integer 2-10 of extern 7-4 unsigned 2-9/10 of friend function 11-7 literal 2-8 of inline 3-9 local of inline function 7-4, 6 class definition 9-16 of main(), implementation class example 9-16 dependency 3-12 class member function 9-16 x X FO 5950 x X NP 650 26 Index DRAFT: 27 May 1994 class, member function in locale-specific behavior 9-11 1-2 class restriction 9-16 locale::to 17-277/278 class restriction, static locale::totype 17-259 member 9-12 locale::transparent 17-282 class, scope of 9-16 locale::virtuals::add_reference object constructor 3-14 17-273 object destructor 3-14 locale::virtuals::collate object initialization 17-267/268 3-14 locale::virtuals::copybut object, static 3-14 17-262 object storage duration locale::virtuals::date_order 3-14 17-270 scope 3-5 locale::virtuals::equal static, destruction of 17-263 6-8 locale::virtuals::extract static initialization 6-7 17-264/265 variable, destruction of locale::virtuals::extractdate 6-6/7 17-270 LOCAL 17-252 locale::virtuals::extractmoney 17-2, 252 17-271/272 locale::category 17-257 locale::virtuals::extractmonthname locale::classic 17-57, 263, 17-270 281 locale::virtuals::extracttime locale::collate 17-278 17-269 localeconv 17-271/272 locale::virtuals::extractweekday locale::ctype 17-258 17-270 locale::dateorder 17-259 locale::virtuals::hash locale::equal 17-274 17-269 locale::extract 17-275 locale::virtuals::insert locale::extractdate 17-280 17-263/264, 269, 271 locale::extractmoney 17-281 locale::virtuals::is 17-266 locale::extractmonthname locale::virtuals::moneyfracdigits 17-280 17-272 locale::extracttime 17-279 locale::virtuals::name locale::extractweekday 17-263 17-280 locale::virtuals::namedctype locale::global 17-281/282 17-266 17-3, 16 locale::virtuals::namedto locale::hash 17-279 17-267 locale::insert 17-274/275, locale::virtuals::narrow 279/280 17-265 locale::is 17-276/277 locale::virtuals::remove_reference locale::locale 17-273 17-273 locale::~locale 17-273 locale::virtuals::to locale::moneyfracdigits 17-266/267 17-281 locale::virtuals::transform locale::moneysymbol 17-259 17-268 locale::name 17-282 locale::virtuals::virtuals locale::namedctype 17-277 17-262, 272 locale::namedto 17-278 locale::virtuals::~virtuals locale::narrow 17-276 17-262 locale::ok 17-273 locale::virtuals::widen 17-265 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 27 locale::widen 17-276 preprocessor 16-1 log 17-233, 241, 248 replacement 16-6 logical main() 3-12 AND operator 5-27 implementation dependency AND operator, side effects linkage of 3-12 and 5-27 implementation dependency OR operator 5-27 parameters to 3-12 OR operator, side effects parameters to 3-12 and 5-27 return from 3-12/13 negation operator 5-15/16 malloc 17-18, 37 logic::do_raise 17-25 management anachronism, logic::~logic 17-24 memory C-15 logic::what 17-25 masking macro 17-5 long 17-3 constant 2-9 MDY 17-252 double literal 2-12 meaning of declarator 8-5 double type 3-19 member literal 2-9/10 -see also base class type 3-18 member type specifier 7-11 access operator, type, unsigned 3-18 overloaded 13-13 typedef and 7-3 access ambiguity 10-4 long_double_complex access, base class 10-1 17-242/243, 249 access, class 5-6 long_double_complex::long_double_caccess, protected 11-8 17-243 access, struct default longjmp 17-18 9-1 long-suffix 2-9 access, union default 9-1 lookup array 9-5 member name 10-4 assignment 12-18 name 3-2 cast, pointer to 5-11, 14 template name 14-4 class object 9-5 LOWER 17-252 constructor order of lowercase 17-14, 49 execution 12-2 lvalue 3-22 declaration 9-4 assignment and 5-28 declaration, class 9-4 cast 5-12, 14 declaration, static 3-2 cast, reinterpret_cast, definition 9-10 5-14 definition, static 9-12 cast, static_cast, 5-12 destructor order of conversion 4-24 execution 12-8 modifiable 3-22 enumerator 7-16 example, static 9-12 function and access M control 12-1 macro function and friend definition scope 16-9 function 11-6 function-like 16-6 function call, constructor invocation 16-7 and 12-16 masking 17-5 function call, destructor name 16-6 and 12-16 object-like 16-6 function call, undefined parameters 16-7 9-10 x X FO 5950 x X NP 650 28 Index DRAFT: 27 May 1994 function, class 9-9 of class type restriction function, const 9-10 12-13 function, constructor and pointer to -see pointer to 12-3 member function definition static 9-11 9-9/11 static class 3-14 function definition, storage duration, class inline 3-11 3-14 function, destructor and template and static 14-29 12-8 type of static 5-15, 9-12 function example 9-9, use, static 9-12 11-6 member-declaration 9-4 function, friend 11-6 member-declarator 9-4 function in local class member-specification 9-4 9-11 memberwise function in nested class assignment 13-13 9-11 assignment, extension to C function, inline 7-6, C-2 9-11 initialization, extension function, local class to C C-2 9-16 memchr 17-16 function, nested class memcmp 17-168, 187 9-15 mem-initializer 12-14 function, overloading memory resolution and 13-6 management -see also new, function rewriting rules, delete inline 9-11 management anachronism function, static 9-9, 11 C-15 function template 14-28 model 1-4 function, union 9-13 message, diagnostic 1-2 function, virtual MESSAGES 17-252 17-8/10, 79, 262 missing storage class function, volatile 9-10 specifier 7-4 initialization 12-14, 18 mode initialization, const binary 17-50 12-14 text 17-50 initialization, order of modifiable lvalue 3-22 12-14 modulus initialization, reference implementation dependency 12-14 5-23 initialization, static operator 5-22 9-12 MONETARY 17-252 initializer 8-16 most derived class 12-15 initializer, scope of multibyte 12-16 character 1-2 local class restriction, string, null-terminated static 9-12 17-15 name access 11-1 multicharacter name access example 11-3 literal 2-11 name lookup 10-4 literal, implementation name, overloaded 9-5 dependency value of 2-11 object initialization multidimensional 12-14 array 8-10 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 29 array declarator 8-10 use of template 14-5 multiple namespace 17-3/5, 16 declaration 3-11 definition 7-17 inheritance 10-1/2 scope 3-6 inheritance DAG 10-3 namespaces 7-17 inheritance, extension to NDEBUG 17-3 C C-2 negation operator, logical inheritance, virtual and 5-15/16 10-9 nested instantiation 14-12 class anachronism, scope multiplication operator of C-16 5-22 class definition 9-14 multiplicative operator class definition example 5-22 9-15 multiplicative-expression class example 9-14 5-22 class forward declaration mutable keyword 3-16 example 9-16 class friend function 9-16 N class member function name 2-6, 3-1, 5-3 9-15 address of qualified 5-15 class, member function in and translation unit 3-2 9-11 class -see class name class, scope of 9-14 declaration 3-2 type name 9-17 dependent 14-7 type name example 9-17 elaborated enum 7-13 type name, scope of 9-17 global 3-6 17-2, 8, 18, 35 hiding 3-7/8, 5-2/3, 6-7 new 3-14, 5-17/18, 12-10 hiding, class definition array 5-18 9-2 array of class objects and hiding, function 13-3 5-19 hiding, overloading versus constructor and 5-19 13-3 default constructor and hiding, user-defined 5-19 conversion and 12-7 exception and 5-19 injection from template extension to C C-2 14-9 extension to C overloading length of 2-6 C-2 lookup 3-2 implementation dependency lookup, member 10-4 constructor and 5-20 lookup, template 14-4 initialization and 5-19, macro 16-6 12-13 overloaded function 13-1 operator 17-8, 18, 36/39 overloaded member 9-5 placement syntax 5-18 point of declaration 3-8 scoping and 5-17 qualified 7-27 storage allocation 5-17 reserved 17-4 type of 12-10 resolution, template 14-4 unspecified order of scope of 3-5 evaluation 5-20 space, label 6-1 unspecified value 5-19 type -see type name new[], operator 17-8, unreserved 17-10 36/37, 39 x X FO 5950 x X NP 650 30 Index DRAFT: 27 May 1994 new-declarator 5-17 O new-expression 5-17 objconstruct 17-251 2-8 17-2, 250 new-initializer 5-17 objcpy 17-250/251 new-line 2-11 objdestroy 17-252 new-placement 5-17 object 1-4, 3-1/2, 22 new-type-id 5-17 class -see also class NO_CHANGE 17-252 object NO_MATCH 17-252 complete 1-4 nondigit 2-6 constructor, local 3-14 NONE 17-252 definition 3-4 nonnested class anachronism delete 5-20 C-16 destructor and placement non-trivial of 12-9 implicitly-declared destructor, local 3-14 default constructor 12-1 destructor static 3-13 initialization 12-12 initialization, auto 8-17 nonvirtual base class DAG initialization, local 10-3 3-14 nonzero-digit 2-9 initialization, static NO_ORDER 17-252 3-13, 8-17/18 norm 17-233, 241, 248 layout, access specifier noshowbase 17-58 and 11-2 noshowpoint 17-58 linkage, implementation noshowpos 17-59 dependency 7-29 noskipws 17-59 linkage specification notation, syntax 1-3 7-29 nouppercase 17-59 static local 3-14 NPOS 17-20 storage duration, local NTBS 17-15, 97, 100, 104, 3-14 120, 122, 134, 266/267, temporary -see temporary 271/272, 279 type, completely-defined static 17-15 3-17 NTMBS 17-15, 41 type, incompletely-defined static 17-15, 41 3-17 NTWCS 17-15 undefined deleted 3-16, static 17-15 5-21 null unnamed 12-2 character 0 2-13 object-like macro 16-6 directive 16-12 oct 17-43, 59 pointer 4-2, 4, 5-25 octal pointer conversion 4-3 literal 2-9 reference 8-8 number 2-12 statement 6-1 octal-escape-sequence 2-10 null-terminated octal-literal 2-9 byte string 17-15 offsetof 17-18 multibyte string 17-15 ofstream 17-142 wide-character string ofstream::close 17-143 17-15 ofstream::is_open 17-143 number ofstream::ofstream 17-142 hex 2-12 ofstream::~ofstream 17-142 octal 2-12 ofstream::open 17-143 NUMERIC 17-252 ofstream::rdbuf 17-142 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 31 old identities and overloading style base class 13-12 initializer anachronism increment 5-8, 15/16 C-14 indirection 5-15 style function definition inequality 5-26 anachronism C-14 left shift -see left shift omanip 17-107 operator omanip::omanip 17-107 less than 5-25 one-definition rule 3-4 less than or equal to one's complement operator 5-25 5-15/16 list 2-7, 13-11 open file 17-50 logical AND 5-27 operand logical OR 5-27 const 5-2 logical negation 5-15/16 reference 5-2 modulus 5-22 volatile 5-2 multiplication 5-22 operations on class object multiplicative 5-22 9-1 new -see new operator one's complement 5-15/16 %= 5-28 overloaded 5-1 &= 5-28 overloading -see also *= 5-28 overloaded operator += 5-16, 28 overloading restrictions -= 5-28 13-11 /= 5-28 pointer to member 5-22 <<= 5-28 precedence of 5-1 >>= 5-28 relational 5-25 ^= 5-28 right shift; right shift additive 5-23 operator 5-24 address-of 5-15 scope resolution 3-6/7, assignment 5-28, 12-17, 5-2/3, 9-9, 10-1, 10 17-10, 42, 212 shift -see left shift bitwise 5-26 operator, right shift bitwise AND 5-26 operator bitwise exclusive OR 5-26 side effects and comma bitwise inclusive OR 5-26 5-29 cast 5-15, 21, 8-2 side effects and logical class member access 5-6 AND 5-27 comma 5-29 side effects and logical conditional expression OR 5-27 5-27 sizeof 5-15/16 conversion 5-2, 12-5 subscripting 5-4, 13-11 decrement 5-8, 15/16 unary 5-15 default assignment 13-13 unary minus 5-15 division 5-22 unary plus 5-15 equality 5-26 use, scope resolution example, scope resolution 9-12 10-5 |= 5-28 function call 5-4, 13-11 operator function call 13-12 delete 17-8, 36/38 greater than 5-25 delete 5-21, 12-10 greater than or equal to delete -see delete 5-25 delete[] 17-8, 37, 39 x X FO 5950 x X NP 650 32 Index DRAFT: 27 May 1994 delete[] 5-21, 12-10 operator 13-11 function 13-11 operator-function-id 13-11 new 17-8, 18, 36/39 operators in expressions, new 5-18, 12-10 overloaded 13-14 new[] 17-8, 36/37, 39 optimization of temporary new[] 5-18, 12-10 -see elimination of overloaded 13-11 temporary operator!= 17-40/41, 62, OR 64, 170/171, 189/190, 195, operator, bitwise 197, 208, 232, 239, exclusive 5-26 246/247, 255, 274 operator, bitwise operator& 17-12, 196, 209 inclusive 5-26 operator&= 17-12, 190, 192, operator, logical 5-27 197, 201 operator, side effects and operator* 17-230, 237/238, logical 5-27 245 order operator*= 17-228/229, of argument evaluation 235/236, 242/243 5-6 operator+ 17-62, 64, 169, of argument evaluation, 188, 209, 221, 227, 229, unspecified 5-6 231, 236/238, 244, 246 of base class operator+= 17-62, 64, 152, initialization 12-14 157, 172, 177, 197, 201, of construction 3-14 211, 215, 222/224, 228, of destruction 3-14 235/236, 242/243 of destruction of operator- 17-62/64, temporary 12-4 230/231, 237/238, 244/246 of evaluation new, operator-= 17-62, 64, 228, unspecified 5-20 235/236, 242/243 of evaluation of operator/ 17-230/231, 238, expression 5-1 245/246 of evaluation, unspecified operator/= 17-228/229, 5-1 235/236, 242, 244 of execution, base class operator<< 17-58, 96/97, constructor 12-2 100/103, 106/107, 172, of execution, base class 190, 196/197, 209/210, destructor 12-8 232, 240, 247, 283 of execution, constructor operator== 17-40/41, 62, and array 12-2 64, 169/170, 188/190, 195, of execution, constructor 197, 208, 231, 238/239, and static objects 12-13 246, 255, 274 of execution, destructor operator>> 17-81, 83, 12-8 86/89, 103, 105/106, 171, of execution, destructor 190, 196/197, 209/210, and array 12-8 232, 239, 247, 283 of execution, destructor operator^ 17-12, 196, 210 and static objects 12-13 operator^= 17-12, 190, 192, of execution, member 197, 202 constructor 12-2 operator| 17-12, 196, 209 of execution, member operator|= 17-12, 190, 192, destructor 12-8 197, 201 of function call operator~ 17-12, 190, 194, evaluation, unspecified 197, 209 5-6 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 33 of initialization overflow::overflow 17-30 3-13/14, 10-2 overflow::~overflow 17-30 of member initialization overflow::what 17-30 12-14 overload resolution, of virtual base class template 14-24 initialization 12-14 overload keyword anachronism ostdiostream::buffered C-13 17-149 overloaded ostdiostream::ostdiostream assignment and 17-148 initialization 12-13 ostdiostream::~ostdiostream assignment operator 13-13 17-148 binary operator 13-13 ostdiostream::rdbuf 17-148 decrement operator 13-14 17-2, 95 function, address of ostream::flush 17-104 5-15, 13-10 ostream::operator<< function ambiguity 17-100/103 detection 13-4 ostream::opfx 17-99 function and standard ostream::osfx 17-100 conversion 13-8 ostream::ostream 17-99 function call operator ostream::~ostream 17-99 13-13 ostream::put 17-103 function call resolution ostream::write 17-103/104 -see also argument ostringstream::ostringstream matching, overloading 17-131/132 resolution ostringstream::~ostringstream function declaration 17-132 matching 13-3 ostringstream::rdbuf 17-132 function, linkage ostringstream::str 17-132 specification 7-29 ostrstream::freeze 17-122 function name 13-1 ostrstream::ostrstream increment operator 13-14 17-121 member access operator ostrstream::~ostrstream 13-13 17-122 member name 9-5 ostrstream::pcount 17-122 name and access ostrstream::rdbuf 17-122 declaration 11-5 ostrstream::str 17-122 name and friend out of range value, declaration 11-6 undefined conversion 4-1 operator 13-11 out 17-43 operator 5-1 out_of_range 17-28/29, 154, operator 13-11 174, 191, 199, 212 operator and default out_of_range::do_raise argument 13-12 17-29 operator, inheritance of out_of_range::out_of_range 13-12 17-29 operators in expressions out_of_range::~out_of_range 13-14 17-29 subscripting operator out_of_range::what 17-29 13-13 overflow 5-1 unary operator 13-12 implementation dependency overloading 8-12, 9-2, 13-1 5-1 and access 13-4 overflow::do_raise 17-30 and const 13-1/2 x X FO 5950 x X NP 650 34 Index DRAFT: 27 May 1994 and default argument 8-15 P and delete 3-15 parameter 1-2, 8-16 and derived class 13-3 adjustment, array 8-12 and enum 13-2 adjustment, function 8-12 and pointer 13-1 declaration 8-11/12 and pointer versus array default template 14-16 13-2 example, unnamed 8-16 and reference 13-1 initialization 5-5 and return type 13-2 list example, variable and scope 13-3 8-13 and specialization 14-27 list, variable 5-5, 8-11 and static 13-2 reference 8-7 and typedef 13-2 scope of 3-5 and volatile 13-1/2 void 8-11 delete, extension to C parameter type list 8-12 C-2 parameter-declaration 8-11 example 13-1 parameterized type -see extension to C C-1 template new, extension to C C-2 parameters operator identities and macro 16-7 13-12 to main() 3-12 postfix ++ and -- 13-14 to main(), implementation prefix ++ and -- 13-14 dependency 3-12 resolution 13-4 parentheses resolution and access and ambiguity 5-17 control 10-5 in declaration 8-3, 6 resolution and conversion parenthesized expression 13-6 5-3 resolution and default period 17-14 argument 13-5 phases, translation 2-1 resolution and ellipsis placement 13-5, 7/8 of object, destructor and resolution and member 12-9 function 13-6 syntax, new 5-18 resolution and pointer pm-expression 5-22 conversion 13-11 POD-struct 8-21 resolution and promotion point 13-7 of declaration class name resolution and standard 9-4 conversion 13-8 of declaration enumerator resolution and user- 3-8 defined conversion 13-8/9 of declaration extern 3-8 resolution exact match of declaration friend 3-8 13-7 of declaration name 3-8 resolution rules 13-7 of definition, enumerator resolution, template 7-15 function 14-21 of error checking 14-4 resolution trivial of instantiation 14-10 conversions 13-7 type, floating 3-18 restriction 13-12 pointer subsequence rule 13-6 -see also void* versus name hiding 13-3 arithmetic 5-23 overrider, final 10-7 assignment, const 5-28 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 35 assignment to 5-28 to function cast 5-13 assignment, volatile 5-28 to function cast, cast, integer to 5-13 implementation dependency comparison 5-25 5-13 comparison, implementation to function comparison dependency 5-25 5-25 comparison, undefined to function conversion 5-24/25 4-3 comparison, void* 5-25 to integer cast 5-13 conversion 4-2 to member 3-20, 5-22 conversion ambiguity 4-3 to member anachronism, conversion, array 4-3 cast of C-15 conversion, base class to member, assignment 4-3 5-29 conversion, const void* to member, assignment to 4-2 5-29 conversion, const volatile to member cast 5-11, 14 void* 4-2 to member constant conversion, derived class expression 5-15 4-3 to member conversion 4-4 conversion, null 4-3 to member conversion conversion, overloading ambiguity 4-4 resolution and 13-11 to member conversion conversion, void* 4-2 anachronism C-15 conversion, volatile const to member declarator ::* void* 4-2 8-8 conversion, volatile void* to member example 8-8 4-2 to member, extension to C conversion, zero 4-3 C-2 conversions, cv-qualifier to member function 5-22 4-2 to member function, declaration 8-6 undefined bound C-15 declarator * 8-6 to member operator 5-22 example, constant 8-6 to member void* conversion initialization, const 4-4 8-17 to member, zero assignment initialization, volatile to 5-29 8-17 to volatile assignment integer conversion, 5-28 implementation defined to volatile initialization 5-13 8-17 null 4-2, 4, 5-25 type 3-19 overloading and 13-1 type extension to C, void* subtraction, C-2 implementation dependency versus array, overloading 5-24 and 13-2 terminology 3-20 zero 4-2, 4, 5-25 to abstract class 10-11 zero assignment to 5-28 to bit-field restriction polar 17-234, 241, 249 9-14 polymorphic to const assignment 5-28 class 10-7 to const initialization type 10-7 8-17 position, stream 17-62/64, 67, 77/80, 117/119, x X FO 5950 x X NP 650 36 Index DRAFT: 27 May 1994 128/129, 137/139 virtual function 10-11 postfix virtual function call, ++ and -- 5-8 undefined 10-12, 12-17 ++ and --, overloading virtual function 13-14 definition 10-11 expression 5-4 virtual function example potential scope 3-1 10-11 pow 17-234, 241, 249 pure-specifier 9-4 pragma directive 16-12 #pragma 16-12 precedence of operator 5-1 Q prefix qualification, explicit ++ and -- 5-16 3-7, 7-27 ++ and --, overloading qualified 13-14 id 5-3 L 2-11, 13 name 7-27 preprocessing 16-1 name, address of 5-15 directive 16-1 qualified-id 5-3 preprocessing-token 2-3 question mark 2-11 preprocessor, macro 16-1 quote primary expression 5-2 double 2-11 PRINT 17-252 single 2-11 private 11-1 base class 11-2 program 3-9 R environment 3-12 raise 17-7, 22, 36, 38, 53, start 3-12/13 155, 175, 191, 199, 212 startup 17-2, 8 range of types, termination 3-12/13 implementation dependency termination and destructor 2-8 12-8 range::do_raise 17-29, 33 promotion range::range 17-33 integral 4-24, 5-5 range::~range 17-33 of wchar_t, implementation range::what 17-29, 33 dependency 4-24 reach 3-7 overloading resolution and real 17-229, 231/232, 234, 13-7 236, 238/240, 242/243, protected 11-1 246/247, 249 extension to C C-2 realloc 17-18, 37 member access 11-8 recursive function call 5-6 protection 17-14 redefinition -see access control enumerator 7-15 ptrdiff_t 5-24, 17-20 typedef 7-7 implementation dependency reference 3-19 type of 5-24 and argument passing 8-22 ptr-operator 8-2 and return 8-22 public 11-1 and temporary 8-22 base class 11-2 argument 5-5 PUNCT 17-252 assignment 8-22 punctuators 2-7 assignment to 5-29 pure call by 5-5 specifier 9-4 cast 5-11, 14 virtual destructor 12-8 cast, reinterpret_cast, 5-14 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 37 cast, static_cast, 5-11 template name 14-4 const 8-22 template overload 14-24 conversion 4-3 restriction 17-6/7 conversion ambiguity 4-3 address of bit-field 9-14 conversions, cv-qualifier anonymous union 9-13 4-3 auto 7-3 declaration 8-7 bit-field 9-14 declaration, extern 8-22 constructor 12-1/2 declarator & 8-7 default assignment expression 5-2 operator 12-18 initialization 8-8, 22 default copy constructor member initialization 12-18 12-14 destructor 12-7/8 null 8-8 enumerator 7-15 operand 5-2 extern 7-4 overloading and 13-1 local class 9-16 parameter 8-7 member of class type restriction 8-8 12-13 sizeof 5-16 overloading 13-12 temporary, scope of 8-23 pointer to bit-field 9-14 to base class 4-3 reference 8-8 type, class 8-18 register 7-3 type, extension to C C-1 static 7-4 volatile 8-23 static member local class references 3-16 9-12 region, declarative 3-1 union 9-13, 12-2 register restrictions, operator declaration 7-4 overloading 13-11 restriction 7-3 rethrow 15-3 reinterpret cast 5-13 return reinterpret_cast type 8-12 lvalue cast 5-14 type, class object 12-13 reference cast 5-14 type conversion 6-6 relational operator 5-25 type, overloading and relational-expression 5-25 13-2 remainder operator -see return 6-6 modulus operator constructor and 6-6 replacement, macro 16-6 from main() 3-12/13 required behavior 17-8 reference and 8-22 reraise 15-3 statement -see also return rescanning and replacement rewriting rules, inline 16-8 member function 9-11 reserve 17-21 right shift operator 5-24 reserved right 17-43, 59 identifier 2-7 rounding 4-1 name 17-4 rule, one-definition 3-4 word -see keyword rules resetiosflags 17-107 for conditions 6-3 resolution inline member function overloading -see rewriting 9-11 overloading resolution overloading resolution scoping ambiguity 10-5 13-7 template function summary, scope 10-12 overloading 14-21 x X FO 5950 x X NP 650 38 Index DRAFT: 27 May 1994 type conversion 4-1 potential 3-1 run-time initialization resolution operator 3-13 3-6/7, 5-2/3, 9-9, 10-1, runtime::do_raise 17-26 10 runtime::runtime 17-25/26 resolution operator :: runtime::~runtime 17-25 3-7 runtime::what 17-25 resolution operator rvalue 3-22 example 10-5 resolution operator use 9-12 S rules summary 10-12 safe floating point selection-statement 6-2 conversion 4-1 scoping s-char 2-13 ambiguity resolution 10-5 s-char-sequence 2-13 and new 5-17 scientific 17-43, 59 seek file 17-50 scope 3-1 selection statement 6-2 File 3-6 selection-statement 6-2 class 3-6 scope 6-2 destructor and exit from semantics, class member 5-6 6-6 separate exception declaration 3-5 compilation 2-1 file 17-4/5 translation 2-1 function 3-6 sequence function prototype 3-5 associated 17-67, 140, global 3-6 142, 147/148 iteration-statement 6-4 statement 6-1 local 3-5 sequencing operator -see macro definition 16-9 comma operator namespace 3-6 setbase 17-108 of class definition 9-2 setfill 17-108 of class name 9-2 setiosflags 17-107/108 of declaration in for 6-5 setjmp 17-5 of default argument 8-15 17-3, 18 of delete example 12-11 setlocale 17-14, 263 of enumerator class 7-16 set_new_handler 17-36 of friend declaration 3-6 setterminate() 15-8 of friend function 11-7 set_terminate 17-33 of function definition setunexpected() 15-9 3-6 set_unexpected 17-34 of label 3-6, 6-1 setvbuf 17-140 of local class 9-16 setw 17-109 of member initializer shift operator -see left 12-16 shift operator, right of name 3-5 shift operator of nested class 9-14 shift-expression 5-24 of nested class short anachronism C-16 type 3-18 of nested type name 9-17 type specifier 7-11 of parameter 3-5 type, unsigned 3-18 of reference temporary typedef and 7-3 8-23 showbase 17-43, 58/59 overloading and 13-3 showpoint 17-43, 58, 60 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 39 showpos 17-43, 59/60 size_t 5-16, 17-20, 268 side implementation dependency effects 5-1 type of 5-16 effects and comma operator skipws 17-43, 59/60 5-29 smanip 17-105 effects and logical AND smanip::smanip 17-105 operator 5-27 source effects and logical OR file 2-1, 17-2/3 operator 5-27 file inclusion 16-4 sign space, white 2-3 of bit-field, SPACE 17-252 implementation dependency special member function -see 9-14 also constructor, of char, implementation destructor, inline dependency 3-18 function, user-defined sign 2-12 conversion, virtual 17-3 function signature 1-2 specialization 14-10 signed instantiation and 14-12 char type 3-18 overloading and 14-27 character 3-18 template 14-14 typedef and 7-3 specialized unsigned, implementation class 14-10 dependency 4-1 function 14-10 unsigned integer specification, template conversion 4-24 argument 14-21 simple-escape-sequence 2-10 specifier simple-type-specifier access -see access 7-10/11 specifier sin 17-234, 242, 249 auto 7-3 single declaration 7-2 precision arithmetic, elaborated type 3-7 extension to C C-1 friend 7-8 precision floating point friend 17-14 arithmetic 4-1 function 7-5 quote 2-11 inline 7-5 sinh 17-235, 242, 250 missing storage class 7-4 sizeof static 7-3 array 5-16 storage class 7-3 class object 5-16 type -see type specifier empty class 9-1 typedef 7-7 expression, implementation virtual 7-6 dependency 5-16 sqrt 17-235, 242, 250 expression, implementation 17-2, 122 dependency type of 2-8 stack unwinding 15-4 integral type, Standard implementation dependency C library 17-1/3, 5, 16, 3-18 38 operator 5-15/16 C++ library 17-1/3, 6/8, reference 5-16 13/14, 20, 22, 27/30, string 2-13 36/39, 47, 62, 150, 272 type, implementation \*C library 17-16 dependency 3-18 standard x X FO 5950 x X NP 650 40 Index DRAFT: 27 May 1994 conversion 4-24 member local class conversion, overloaded restriction 9-12 function and 13-8 member, template and conversion, overloading 14-29 resolution and 13-8 member, type of 5-15, headers 2-8 9-12 start, program 3-12/13 member use 9-12 startup, program 17-2, 8 object, destructor 3-13 statement 6-1 object initialization -see also return, return 3-13, 8-17/18 break 6-6 objects order of compound 6-2 execution, constructor and continue 6-6 12-13 continue in for 6-5 objects order of declaration 6-7 execution, destructor and declaration in for 6-5 12-13 declaration in switch 6-4 overloading and 13-2 do 6-4/5 restriction 7-4 empty 6-1 specifier 7-3 expression 6-1 variable, template and extension to C declaration 14-29 C-2 static_cast for 6-4/5 class object cast 5-12 goto 6-1, 6/7 conversion to enumeration if 6-2/3 type 5-11 iteration 6-4 lvalue cast 5-12 jump 6-6 reference cast 5-11 labeled 6-1 8-11, 17-3 null 6-1 __STDC__ 16-13 selection 6-2 implementation dependency sequence 6-1 16-13 switch 6-2/3, 6 2-8, 11, 13, while 6-4/5 17-3, 16, 18 {}, block 6-2 stdiobuf::buffered statement 6-1 17-144/145 static stdiobuf::overflow 17-145 NTBS 17-15 stdiobuf::pbackfail 17-145 NTMBS 17-15, 41 stdiobuf::seekoff 17-146 NTWCS 17-15 stdiobuf::seekpos 17-146 cast 5-10 stdiobuf::setbuf 17-146 type 1-3 stdiobuf::showmany 17-145 static stdiobuf::stdiobuf 17-144 class member 3-14 stdiobuf::~stdiobuf 17-144 destruction of local 6-8 stdiobuf::sync 17-146 initialization, local 6-7 stdiobuf::uflow 17-145 linkage of 3-9, 7-4, 29 stdiobuf::underflow 17-145 local object 3-14 stdiobuf::xsgetn 17-146 member 9-11 stdiobuf::xsputn 17-146 member declaration 3-2 17-3, 16, 19 member definition 9-12 2-8, 17-3, 16, member example 9-12 18/19 member function 9-9, 11 storage member initialization allocation new 5-17 9-12 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 41 class 3-1 streambuf::sgetn 17-69 class declaration 7-3 streambuf::showmany 17-76, class specifier 7-3 116, 127, 137, 145 class specifier, missing streambuf::snextc 17-70 7-4 streambuf::sputbackc 17-70 duration 3-13 streambuf::sputc 17-70 duration, auto 3-14 streambuf::sputn 17-70 duration, class member streambuf::streambuf 17-71 3-14 streambuf::~streambuf 17-68 duration, dynamic 3-14, streambuf::sungetc 17-70 5-17 streambuf::sync 17-80, 119, duration, local object 130 3-14 streambuf::uflow 17-78/79, management -see new, 117, 127 delete streambuf::underflow 17-77, of array 8-10 117 strchr 17-17 streambuf::xsgetn 17-79, stream 117, 127, 138, 146 C 17-19, 50, 86, 149 streambuf::xsputn 17-79, buffer 17-46/47, 50, 67, 117, 128, 138, 146 80, 83/84, 95/97, 109, streamoff 17-60/61, 63, 122, 132, 144, 149/150 118, 128/129 position 17-62/64, 67, streampos::offset 17-63 77/80, 117/119, 128/129, streampos::operator+ 17-64 137/139 streampos::operator+= 17-64 17-2, 60 streampos::operator- streambuf::eback 17-71 17-63/64 streambuf::egptr 17-71 streampos::operator== 17-64 streambuf::epptr 17-72 streampos::streampos 17-62 streambuf::gbump 17-71 string streambuf::gptr 17-71 concatenation 2-13 streambuf::in_avail 17-69 constant 2-13 streambuf::overflow 17-74, distinct 2-13 115 literal 2-13 streambuf::pbackfail 17-75, literal concatenation, 116 undefined 2-13 streambuf::pbase 17-71 literal, implementation streambuf::pbump 17-72 dependency 2-13 streambuf::pptr 17-72 literal, type of 2-13 streambuf::pubseekoff 17-68 literal, undefined change streambuf::pubseekpos 17-68 to 2-13 streambuf::pubsetbuf 17-69 null-terminated byte streambuf::pubsync 17-69 17-15 streambuf::sbumpc 17-69 null-terminated multibyte streambuf::seekoff 17-79, 17-15 117 null-terminated wide- streambuf::seekpos 17-80, character 17-15 118 sizeof 2-13 streambuf::setbuf 17-80, terminator 0 2-13 119, 129 type of 2-13 streambuf::setg 17-71 wide-character 2-13 streambuf::setp 17-72 17-2, 150 streambuf::sgetc 17-69 string::append 17-158, 177/178, 203 x X FO 5950 x X NP 650 42 Index DRAFT: 27 May 1994 string::assign 17-158/159, string::string 17-155/157 178/179, 203 string::substr 17-168, 187, stringbuf::overflow 17-126 208 stringbuf::pbackfail 17-126 strlen 17-112, 122, 156 stringbuf::seekoff 17-128 strpbrk 17-17 stringbuf::seekpos 17-129 strrchr 17-17 stringbuf::setbuf 17-129 strstr 17-18 stringbuf::showmany 17-127 17-2, 109 stringbuf::str 17-125 strstreambuf::freeze 17-114 stringbuf::~stringbuf strstreambuf::overflow 17-125 17-115 stringbuf::sync 17-129 strstreambuf::pbackfail stringbuf::uflow 17-127 17-116 stringbuf::underflow 17-127 strstreambuf::pcount 17-114 stringbuf::xsgetn 17-127 strstreambuf::seekoff stringbuf::xsputn 17-128 17-117 string::compare 17-168/169, strstreambuf::seekpos 187 17-118 string::copy 17-163, 182 strstreambuf::setbuf 17-119 string::data 17-162, 181 strstreambuf::showmany string::find 17-164, 17-116 182/183, 207 strstreambuf::str 17-114 string::find_first_not_of strstreambuf::strstreambuf 17-166/167, 185/186 17-111/113 string::find_first_of strstreambuf::~strstreambuf 17-165, 184 17-114 string::find_last_not_of strstreambuf::sync 17-119 17-167/168, 186 strstreambuf::uflow 17-117 string::find_last_of strstreambuf::underflow 17-166, 184/185 17-117 string::get_at 17-161, 181 strstreambuf::xsgetn 17-117 17-3, 16/18 strstreambuf::xsputn 17-117 string::insert 17-159, 179, struct 3-20 203 class versus 9-1 string::length 17-162, 181, default member access 9-1 206 initialization 8-20 string-literal 2-13 type specifier 7-13 string::operator+= 17-157, structure 3-20, 9-1 177, 201 tag -see class name string::operator= 17-157, sub-object 1-4 177 lattice -see DAG string::operator[] 17-162, subscripting 181 example 8-10 string::put_at 17-161, 181 explanation 8-10 string::remove 17-160, 179, operator 5-4, 13-11 204 operator, overloaded string::replace 17-160/161, 13-13 180, 204 subsequence rule, string::reserve 17-163, 182 overloading 13-6 string::resize 17-162, 181, subtraction 206 implementation dependency string::rfind 17-164/165, pointer 5-24 183/184, 207 operator 5-23 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 43 suffix name resolution 14-4 E 2-12 name, use of 14-5 F 2-12 overload resolution 14-24 L 2-10, 12 parameter, default 14-16 U 2-10 specialization 14-14 f 2-12 type equivalence 14-21 l 2-10, 12 template 14-1 u 2-10 template-argument 14-2 summary template-argument-list 14-2 compatibility with C C-1 template-declaration 14-1 compatibility with ISO C template-id 14-2 C-3 template-name 14-2 scope rules 10-12 template-parameter 14-15 syntax A-1 template-parameter-list switch 14-1 statement 6-2/3, 6 temporary 12-3 statement, declaration in and declarator initializer 6-4 12-4 synchronization 17-46, 86, and default argument 12-4 104, 144 constructor for 12-3 synonym 7-21 destruction of 12-3 type name as 7-7 destructor for 12-3 syntax elimination of 12-3 checking 14-4 implementation dependency class member 5-6 generation of 12-3 explicit instantiation order of destruction of 14-13 12-4 notation 1-3 reference and 8-22 summary A-1 scope of reference 8-23 terminate 17-19, 34/35 terminate() 15-8/9 T termination target type 8-18 and destructor, program template 14-1 12-8 access rules 14-19 program 3-12/13 and < 14-3 terminator 0, string 2-13 and friend 14-29 terminology, pointer 3-20 and static member 14-29 text mode 17-50 and static variable 14-29 this 5-2 argument 14-18 anachronism, assignment to argument deduction 14-22 C-15 argument specification and constructor 14-21 anachronism C-15 class 14-3, 17-105/107, and destructor anachronism 190, 210/211, 222 C-15 definition of 14-1 pointer -see this function 14-21 type of 9-10 function overloading throw 15-1 resolution 14-21 linkage and 3-10 instantiation 14-10 throw-expression in member function 14-28 conditional-expression name injection from 14-9 5-27 name lookup 14-4 throw-expression 15-1 x X FO 5950 x X NP 650 44 Index DRAFT: 27 May 1994 throwing, exception 15-2 definition, class name as throw-point 15-1 9-2 TIME 17-252 double 3-19 17-3, 16 dynamic 1-2 tmpfile 17-19 enumerated 3-18, token 2-5, 7 17-11/12, 21, 46, 50, 257, token 2-5 259 translation enumeration underlying phases 2-1 7-15 separate 2-1 equivalence 7-7, 9-2 unit 17-2/4 equivalence, template unit 2-2, 3-9 14-21 unit, name and 3-2 example of incomplete translation@unit 2-1 3-17 trigraph 2-1/2 extension to C reference trivial conversions, C-1 overloading resolution extension to C user- 13-7 defined C-2 trunc 17-43 float 3-19 truncation 4-1 floating point 3-18 try 15-1 function 3-19, 8-11/12 try-block 15-1 fundamental 3-18 type 3-1 generator -see template Boolean 3-18 implementation 17-11 ambiguity, declaration implementation dependency 7-3 sizeof 3-18 arithmetic 3-19 incomplete 3-17 array 3-19, 8-12 incompletely-defined bitmask 17-12/13, 46, object 3-17 48/50, 110, 257/258 int 3-18 char 3-18 integral 3-18 character 3-18 long 3-18 checking, argument 5-5 long double 3-19 checking, extension to C name 3-22, 8-2 C-1 name as synonym 7-7 checking of default name example 8-3 argument 8-14 name example, nested 9-17 class and 9-1 name, nested 9-17 class reference 8-18 name, scope of nested completely-defined object 9-17 3-17 of bit-field 9-14 compound 3-19 of character literal 2-11 const 7-8 of constructor 12-2 conversion -see also of conversion 12-5 conversion of delete 12-11 conversion, argument 12-4 of enum 7-14/15 conversion, explicit -see of floating point literal casting 2-12 conversion rules 4-1 of integer literal 2-10 declaration 8-5 of integer literal, declaration consistency implementation dependency 3-11 2-10 declaration, typedef as of new 12-10 7-7 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 45 of ptrdiff_t, example 7-7 implementation dependency overloading and 13-2 5-24 redefinition 7-7 of size_t, implementation specifier 7-7 dependency 5-16 typedef-name 7-7 of sizeof expression, typeid 5-10 implementation dependency type-id 8-2 2-8 type-id-list 15-6 of static member 5-15, 17-2, 40 9-12 type_info 5-10 of string 2-13 type_info::name 17-42 of string literal 2-13 type_info::operator!= 17-41 of this 9-10 type_info::operator= 17-42 pointer 3-19 type_info::operator== 17-41 polymorphic 10-7 type_info::type_info 17-42 short 3-18 type_info::~type_info 17-41 signed char 3-18 type-parameter 14-15 specifier, char 7-11 types, implementation specifier, class 7-13 dependency range of 2-8 specifier, double 7-11 type-specifier specifier, elaborated bool 7-11 14-20 wchart 7-11 specifier, enum 7-12 type-specifier 7-8 specifier, float 7-11 specifier, int 7-11 specifier, long 7-11 U specifier, short 7-11 U suffix 2-10 specifier, struct 7-13 u suffix 2-10 specifier, union 7-13 unary specifier, unsigned 7-11 expression 5-15 specifier, void 7-11 minus operator 5-15 specifier, volatile 7-10 operator 5-15 static 1-3 operator, interpretation target 8-18 of 13-12 unsigned 3-18 operator, overloaded unsigned char 3-18 13-12 unsigned int 3-18 plus operator 5-15 unsigned long 3-18 unary-expression 5-15 unsigned short 3-18 unary-operator 5-15 void 3-19 unbuffered file 17-149 void* 3-20 #undef 16-9, 17-4 volatile 7-8 undefined 5-10 wchar_t 3-19 behavior 1-3 wchar_t underlying 3-19 bound pointer to member typedef 3-22 function C-15 and long 7-3 change to string literal and short 7-3 2-13 and signed 7-3 conversion out of range and unsigned 7-3 value 4-1 as type declaration 7-7 delete 5-20 class name 7-8, 9-4 deleted object 3-16, 5-21 declaration 3-2 division by zero 5-1, 23 enum name 7-8 escape sequence 2-11 x X FO 5950 x X NP 650 46 Index DRAFT: 27 May 1994 function call 5-11, 13/14 unreserved name 17-10 left shift 5-25 unsigned member function call 9-10 arithmetic 3-18 pointer comparison char type 3-18 5-24/25 constant 2-9 pure virtual function call implementation dependency 10-12, 12-17 signed 4-1 string literal int type 3-18 concatenation 2-13 integer conversion, signed unrepresentable integral 4-24 value 4-1 literal 2-9/10 value delete 5-21 long type 3-18 underlying short type 3-18 type, enumeration 7-15 type 3-18 type, wchar_t 3-19 type specifier 7-11 underscore typedef and 7-3 character 17-4/5 unsigned-suffix 2-9 character _ 2-6 unspecified in identifier _ 2-7 argument to constructor unexpected 17-35 5-20 unexpected() 15-9 behavior 1-3 ungetc 17-65, 70, 95, destructor call 6-8 137/138, 144 expression 5-6 uninitialized variable, order of argument indeterminate 8-18 evaluation 5-6 union 3-20, 9-13 order of evaluation 5-1 access control, anonymous order of evaluation new 9-13 5-20 anonymous 9-13 order of function call class versus 9-1 evaluation 5-6 constructor 9-13 value new 5-19 default member access 9-1 unwinding, stack 15-4 destructor 9-13 UP 17-252 extension to C anonymous UPPER 17-252 C-2 uppercase 17-5, 14, 43, 49, global anonymous 9-13 59/60, 98 initialization 8-21, 9-13 uppercase 17-43, 59/60 member function 9-13 use of template name 14-5 restriction 9-13, 12-2 user-defined restriction, anonymous conversion 5-2, 12-4/5 9-13 conversion and name hiding type specifier 7-13 12-7 unit, translation 17-2/4 conversion, implicit 12-6 unitbuf 17-43 conversion, inheritance of unknown argument type 8-11 12-6 unnamed conversion, overloading bit-field 9-14 resolution and 13-8/9 class 7-8 conversion, virtual 12-6 object 12-2 type, extension to C C-2 parameter example 8-16 using-declaration 7-21 unqualified-id 5-3 using-directive 7-25 unrepresentable integral value, undefined 4-1 x X FO 5950 x X NP 650 DRAFT: 27 May 1994 Index 47 V member function 17-8/10, va_end 17-5 79, 262 va_list 17-5 user-defined conversion value 12-6 call by 5-5 virtual delete, undefined 5-21 and friend 10-9 new, unspecified 5-19 and multiple inheritance of char literal, 10-9 implementation dependency specifier 7-6 2-12 visibility 3-7 of enumerator 7-15 void of multicharacter literal, parameter 8-11 implementation dependency type 3-19 2-11 type specifier 7-11 undefined conversion out void& 8-7 of range 4-1 void* undefined unrepresentable conversion, pointer to integral 4-1 member 4-4 variable pointer comparison 5-25 argument list 8-11 pointer conversion 4-2 indeterminate pointer type extension to uninitialized 8-18 C C-2 parameter list 5-5, 8-11 type 3-20 parameter list example volatile 3-21 8-13 assignment, pointer to template and static 14-29 5-28 vertical tab 2-11 const void* pointer virtual conversion 4-2 base class 10-3 constructor and 9-11, base class DAG 10-3 12-1 base class dominance 10-6 destructor and 9-11, 12-7 base class initialization extension to C C-2 12-15, 18 implementation dependency base class initialization, 7-10 order of 12-14 initialization, pointer to destructor 12-8 8-17 destructor, pure 12-8 member function 9-10 function 10-7 operand 5-2 function access 11-9 overloading and 13-1/2 function call 10-10 pointer assignment 5-28 function call, constructor pointer initialization and 12-16 8-17 function call, destructor reference 8-23 and 12-16 type 7-8 function call, undefined type specifier 7-10 pure 10-12, 12-17 void* pointer conversion function definition 10-8 4-2 function definition, pure 10-11 function example 10-7, 9 W function example, pure 17-3, 16 10-11 wchart type-specifier 7-11 function, pure 10-11 wchar_t 2-11, 13, 17-15, 21, 266/269 x X FO 5950 x X NP 650 48 Index DRAFT: 27 May 1994 implementation dependency X 3-19 XDIGIT 17-252 implementation dependency X(X&) -see copy constructor promotion of 4-24 type 3-19 underlying type 3-19 Y wcslen 17-176 YDM 17-252 17-3 YMD 17-252 WEOF 17-21, 265 while statement 6-4/5 white Z space 2-3 zero space 2-5 assignment to pointer wide-character 2-11 5-28 string 2-13 assignment to pointer to string, null-terminated member 5-29 17-15 pointer 4-2, 4, 5-25 wint_t 17-20 pointer conversion 4-3 wmemcmp 17-187 undefined division by ws 17-59/60, 86, 95 5-1, 23 17-2, 172 width of bit-field 9-14 wstring::append 17-177/178 wstring::assign 17-178/179 wstring::compare 17-187 wstring::copy 17-182 wstring::data 17-181 wstring::find 17-182/183 wstring::find_first_not_of 17-185/186 wstring::find_first_of 17-184 wstring::find_last_not_of 17-186 wstring::find_last_of 17-184/185 wstring::get_at 17-181 wstring::insert 17-179 wstring::length 17-181 wstring::operator+= 17-177 wstring::operator= 17-177 wstring::operator[] 17-181 wstring::put_at 17-181 wstring::remove 17-179 wstring::replace 17-180 wstring::reserve 17-182 wstring::resize 17-181 wstring::rfind 17-183/184 wstring::substr 17-187 wstring::wstring 17-175/176