实例介绍
                                【实例简介】C   17 标准手册
                        【实例截图】
	












 
【核心代码】
		Contents
	
	
		Contents
	
	
		ii
	
	
		List of Tables
	
	
		x
	
	
		List of Figures
	
	
		xiv
	
	
		1 Scope
	
	
		1
	
	
		2 Normative references
	
	
		2
	
	
		3 Terms and defifinitions
	
	
		3
	
	
		4 General principles
	
	
		7
	
	
		4.1 Implementation compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		7
	
	
		4.2 Structure of this document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		8
	
	
		4.3 Syntax notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		8
	
	
		4.4 The C   memory model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		8
	
	
		4.5 The C   object model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		9
	
	
		4.6 Program execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		11
	
	
		4.7 Multi-threaded executions and data races . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		15
	
	
		4.8 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		20
	
	
		5 Lexical conventions
	
	
		22
	
	
		5.1 Separate translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		22
	
	
		5.2 Phases of translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		22
	
	
		5.3 Character sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		23
	
	
		5.4 Preprocessing tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		24
	
	
		5.5 Alternative tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		25
	
	
		5.6 Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		25
	
	
		5.7 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		26
	
	
		5.8 Header names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		26
	
	
		5.9 Preprocessing numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		26
	
	
		5.10 Identififiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		27
	
	
		5.11 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		28
	
	
		5.12 Operators and punctuators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		29
	
	
		5.13 Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		29
	
	
		6 Basic concepts
	
	
		39
	
	
		6.1 Declarations and defifinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		39
	
	
		6.2 One-defifinition rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		41
	
	
		6.3 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		44
	
	
		6.4 Name lookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		50
	
	
		6.5 Program and linkage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		63
	
	
		6.6 Start and termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		66
	
	
		6.7 Storage duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		70
	
	
		6.8 Object lifetime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		74
	
	
		Contents
	
	
		ii©ISO/IEC
	
	
		N4659
	
	
		6.9 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		77
	
	
		6.10 Lvalues and rvalues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		83
	
	
		6.11 Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		84
	
	
		7 Standard conversions
	
	
		86
	
	
		7.1 Lvalue-to-rvalue conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		87
	
	
		7.2 Array-to-pointer conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		87
	
	
		7.3 Function-to-pointer conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		88
	
	
		7.4 Temporary materialization conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		88
	
	
		7.5 Qualifification conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		88
	
	
		7.6 Integral promotions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		89
	
	
		7.7 Floating-point promotion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		89
	
	
		7.8 Integral conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		89
	
	
		7.9 Floating-point conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		90
	
	
		7.10 Floating-integral conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		90
	
	
		7.11 Pointer conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		90
	
	
		7.12 Pointer to member conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		90
	
	
		7.13 Function pointer conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		91
	
	
		7.14 Boolean conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		91
	
	
		7.15 Integer conversion rank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		91
	
	
		8 Expressions
	
	
		93
	
	
		8.1 Primary expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		96
	
	
		8.2 Postfifix expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		108
	
	
		8.3 Unary expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		120
	
	
		8.4 Explicit type conversion (cast notation) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		129
	
	
		8.5 Pointer-to-member operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		130
	
	
		8.6 Multiplicative operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		131
	
	
		8.7 Additive operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		131
	
	
		8.8 Shift operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		132
	
	
		8.9 Relational operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		133
	
	
		8.10 Equality operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		133
	
	
		8.11 Bitwise AND operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		135
	
	
		8.12 Bitwise exclusive OR operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		135
	
	
		8.13 Bitwise inclusive OR operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		135
	
	
		8.14 Logical AND operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		135
	
	
		8.15 Logical OR operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		135
	
	
		8.16 Conditional operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		136
	
	
		8.17 Throwing an exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		137
	
	
		8.18 Assignment and compound assignment operators . . . . . . . . . . . . . . . . . . . . . . .
	
	
		138
	
	
		8.19 Comma operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		139
	
	
		8.20 Constant expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		139
	
	
		9 Statements
	
	
		144
	
	
		9.1 Labeled statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		145
	
	
		9.2 Expression statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		145
	
	
		9.3 Compound statement or block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		145
	
	
		9.4 Selection statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		145
	
	
		9.5 Iteration statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		147
	
	
		9.6 Jump statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		150
	
	
		9.7 Declaration statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		152
	
	
		Contents
	
	
		iii©ISO/IEC
	
	
		N4659
	
	
		9.8 Ambiguity resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		152
	
	
		10 Declarations
	
	
		155
	
	
		10.1 Specififiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		157
	
	
		10.2 Enumeration declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		174
	
	
		10.3 Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		178
	
	
		10.4 The asm declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		191
	
	
		10.5 Linkage specififications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		191
	
	
		10.6 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		194
	
	
		11 Declarators
	
	
		201
	
	
		11.1 Type names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		202
	
	
		11.2 Ambiguity resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		203
	
	
		11.3 Meaning of declarators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		204
	
	
		11.4 Function defifinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		216
	
	
		11.5 Structured binding declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		219
	
	
		11.6 Initializers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		220
	
	
		12 Classes
	
	
		237
	
	
		12.1 Class names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		239
	
	
		12.2 Class members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		241
	
	
		12.3 Unions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		251
	
	
		12.4 Local class declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		254
	
	
		13 Derived classes
	
	
		256
	
	
		13.1 Multiple base classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		257
	
	
		13.2 Member name lookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		259
	
	
		13.3 Virtual functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		262
	
	
		13.4 Abstract classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		266
	
	
		14 Member access control
	
	
		269
	
	
		14.1 Access specififiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		270
	
	
		14.2 Accessibility of base classes and base class members . . . . . . . . . . . . . . . . . . . . . .
	
	
		271
	
	
		14.3 Friends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		274
	
	
		14.4 Protected member access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		277
	
	
		14.5 Access to virtual functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		278
	
	
		14.6 Multiple access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		278
	
	
		14.7 Nested classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		278
	
	
		15 Special member functions
	
	
		280
	
	
		15.1 Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		280
	
	
		15.2 Temporary objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		283
	
	
		15.3 Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		285
	
	
		15.4 Destructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		288
	
	
		15.5 Free store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		291
	
	
		15.6 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		293
	
	
		15.7 Construction and destruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		300
	
	
		15.8 Copying and moving class objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		303
	
	
		16 Overloading
	
	
		311
	
	
		16.1 Overloadable declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		311
	
	
		16.2 Declaration matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		313
	
	
		Contents
	
	
		iv©ISO/IEC
	
	
		N4659
	
	
		16.3 Overload resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		314
	
	
		16.4 Address of overloaded function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		335
	
	
		16.5 Overloaded operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		336
	
	
		16.6 Built-in operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		341
	
	
		17 Templates
	
	
		344
	
	
		17.1 Template parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		345
	
	
		17.2 Names of template specializations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		349
	
	
		17.3 Template arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		350
	
	
		17.4 Type equivalence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		356
	
	
		17.5 Template declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		357
	
	
		17.6 Name resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		375
	
	
		17.7 Template instantiation and specialization . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		390
	
	
		17.8 Function template specializations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		402
	
	
		17.9 Deduction guides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		423
	
	
		18 Exception handling
	
	
		424
	
	
		18.1 Throwing an exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		425
	
	
		18.2 Constructors and destructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		427
	
	
		18.3 Handling an exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		427
	
	
		18.4 Exception specififications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		429
	
	
		18.5 Special functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		432
	
	
		19 Preprocessing directives
	
	
		434
	
	
		19.1 Conditional inclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		435
	
	
		19.2 Source fifile inclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		437
	
	
		19.3 Macro replacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		438
	
	
		19.4 Line control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		443
	
	
		19.5 Error directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		444
	
	
		19.6 Pragma directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		444
	
	
		19.7 Null directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		444
	
	
		19.8 Predefifined macro names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		444
	
	
		19.9 Pragma operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		446
	
	
		20 Library introduction
	
	
		447
	
	
		20.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		447
	
	
		20.2 The C standard library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		448
	
	
		20.3 Defifinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		448
	
	
		20.4 Method of description (Informative) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		451
	
	
		20.5 Library-wide requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		456
	
	
		21 Language support library
	
	
		478
	
	
		21.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		478
	
	
		21.2 Common defifinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		478
	
	
		21.3 Implementation properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		483
	
	
		21.4 Integer types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		492
	
	
		21.5 Start and termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		493
	
	
		21.6 Dynamic memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		494
	
	
		21.7 Type identifification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		502
	
	
		21.8 Exception handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		504
	
	
		21.9 Initializer lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		509
	
	
		Contents
	
	
		v©ISO/IEC
	
	
		N4659
	
	
		21.10 Other runtime support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		510
	
	
		22 Diagnostics library
	
	
		513
	
	
		22.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		513
	
	
		22.2 Exception classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		513
	
	
		22.3 Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		517
	
	
		22.4 Error numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		517
	
	
		22.5 System error support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		519
	
	
		23 General utilities library
	
	
		530
	
	
		23.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		530
	
	
		23.2 Utility components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		530
	
	
		23.3 Compile-time integer sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		538
	
	
		23.4 Pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		539
	
	
		23.5 Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		543
	
	
		23.6 Optional objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		554
	
	
		23.7 Variants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		569
	
	
		23.8 Storage for any type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		582
	
	
		23.9 Bitsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		587
	
	
		23.10 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		594
	
	
		23.11 Smart pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		609
	
	
		23.12 Memory resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		635
	
	
		23.13 Class template scoped_allocator_adaptor . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		646
	
	
		23.14 Function objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		652
	
	
		23.15 Metaprogramming and type traits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		676
	
	
		23.16 Compile-time rational arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		702
	
	
		23.17 Time utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		705
	
	
		23.18 Class type_index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		722
	
	
		23.19 Execution policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		723
	
	
		24 Strings library
	
	
		726
	
	
		24.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		726
	
	
		24.2 Character traits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		726
	
	
		24.3 String classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		732
	
	
		24.4 String view classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		766
	
	
		24.5 Null-terminated sequence utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		776
	
	
		25 Localization library
	
	
		782
	
	
		25.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		782
	
	
		25.2 Header <locale> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		782
	
	
		25.3 Locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		784
	
	
		25.4 Standard locale categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		791
	
	
		25.5 C library locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		829
	
	
		26 Containers library
	
	
		830
	
	
		26.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		830
	
	
		26.2 Container requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		830
	
	
		26.3 Sequence containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		868
	
	
		26.4 Associative containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		900
	
	
		26.5 Unordered associative containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		921
	
	
		26.6 Container adaptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		945
	
	
		Contents
	
	
		vi©ISO/IEC
	
	
		N4659
	
	
		27 Iterators library
	
	
		955
	
	
		27.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		955
	
	
		27.2 Iterator requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		955
	
	
		27.3 Header <iterator> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		961
	
	
		27.4 Iterator primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		964
	
	
		27.5 Iterator adaptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		967
	
	
		27.6 Stream iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		980
	
	
		27.7 Range access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		987
	
	
		27.8 Container access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		988
	
	
		28 Algorithms library
	
	
		989
	
	
		28.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		989
	
	
		28.2 Header <algorithm> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		989
	
	
		28.3 Algorithms requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008
	
	
		28.4 Parallel algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009
	
	
		28.5 Non-modifying sequence operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012
	
	
		28.6 Mutating sequence operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020
	
	
		28.7 Sorting and related operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030
	
	
		28.8 C library algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049
	
	
		29 Numerics library
	
	
		1050
	
	
		29.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050
	
	
		29.2 Defifinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050
	
	
		29.3 Numeric type requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050
	
	
		29.4 The flfloating-point environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051
	
	
		29.5 Complex numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052
	
	
		29.6 Random number generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062
	
	
		29.7 Numeric arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105
	
	
		29.8 Generalized numeric operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1125
	
	
		29.9 Mathematical functions for flfloating-point types . . . . . . . . . . . . . . . . . . . . . . . . 1139
	
	
		30 Input/output library
	
	
		1157
	
	
		30.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157
	
	
		30.2 Iostreams requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158
	
	
		30.3 Forward declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158
	
	
		30.4 Standard iostream objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160
	
	
		30.5 Iostreams base classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162
	
	
		30.6 Stream buffffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1179
	
	
		30.7 Formatting and manipulators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188
	
	
		30.8 String-based streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214
	
	
		30.9 File-based streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225
	
	
		30.10 File systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239
	
	
		30.11 C library fifiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1293
	
	
		31 Regular expressions library
	
	
		1297
	
	
		31.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1297
	
	
		31.2 Defifinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1297
	
	
		31.3 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298
	
	
		31.4 Header <regex> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1300
	
	
		31.5 Namespace std::regex_constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1306
	
	
		31.6 Class regex_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1309
	
	
		Contents
	
	
		vii©ISO/IEC
	
	
		N4659
	
	
		31.7 Class template regex_traits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1310
	
	
		31.8 Class template basic_regex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1312
	
	
		31.9 Class template sub_match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1318
	
	
		31.10 Class template match_results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1323
	
	
		31.11 Regular expression algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1328
	
	
		31.12 Regular expression iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1333
	
	
		31.13 Modifified ECMAScript regular expression grammar . . . . . . . . . . . . . . . . . . . . . . 1339
	
	
		32 Atomic operations library
	
	
		1342
	
	
		32.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342
	
	
		32.2 Header <atomic> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342
	
	
		32.3 Type aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1346
	
	
		32.4 Order and consistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1346
	
	
		32.5 Lock-free property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1348
	
	
		32.6 Class template atomic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1348
	
	
		32.7 Non-member functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1356
	
	
		32.8 Flag type and operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1356
	
	
		32.9 Fences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1357
	
	
		33 Thread support library
	
	
		1359
	
	
		33.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1359
	
	
		33.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1359
	
	
		33.3 Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1362
	
	
		33.4 Mutual exclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1367
	
	
		33.5 Condition variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1388
	
	
		33.6 Futures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1395
	
	
		A Grammar summary
	
	
		1412
	
	
		A.1 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1412
	
	
		A.2 Lexical conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1412
	
	
		A.3 Basic concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1417
	
	
		A.4 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1417
	
	
		A.5 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1421
	
	
		A.6 Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1422
	
	
		A.7 Declarators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1426
	
	
		A.8 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1428
	
	
		A.9 Derived classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1429
	
	
		A.10 Special member functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1430
	
	
		A.11 Overloading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1430
	
	
		A.12 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1430
	
	
		A.13 Exception handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1431
	
	
		A.14 Preprocessing directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432
	
	
		B Implementation quantities
	
	
		1434
	
	
		C Compatibility
	
	
		1436
	
	
		C.1 C   and ISO C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1436
	
	
		C.2 C   and ISO C   2003 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1445
	
	
		C.3 C   and ISO C   2011 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1451
	
	
		C.4 C   and ISO C   2014 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1453
	
	
		C.5 C standard library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1457
	
	
		Contents
	
	
		viii©ISO/IEC
	
	
		N4659
	
	
		D Compatibility features
	
	
		1460
	
	
		D.1 Redeclaration of static constexpr data members . . . . . . . . . . . . . . . . . . . . . . 1460
	
	
		D.2 Implicit declaration of copy functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1460
	
	
		D.3 Deprecated exception specififications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1460
	
	
		D.4 C   standard library headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1460
	
	
		D.5 C standard library headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1461
	
	
		D.6
	
	
		char* streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1461
	
	
		D.7
	
	
		uncaught_exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1470
	
	
		D.8 Old adaptable function bindings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1470
	
	
		D.9 The default allocator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1475
	
	
		D.10 Raw storage iterator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1476
	
	
		D.11 Temporary buffffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1478
	
	
		D.12 Deprecated type traits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1478
	
	
		D.13 Deprecated iterator primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1479
	
	
		D.14 Deprecated shared_ptr observers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1479
	
	
		D.15 Deprecated standard code conversion facets . . . . . . . . . . . . . . . . . . . . . . . . . . 1479
	
	
		D.16 Deprecated convenience conversion interfaces . . . . . . . . . . . . . . . . . . . . . . . . . 1481
	
	
		Cross references
	
	
		1486
	
	
		Cross references from ISO C   2014
	
	
		1507
	
	
		Index
	
	
		1509
	
	
		Index of grammar productions
	
	
		1542
	
	
		Index of library names
	
	
		1546
	
	
		Index of implementation-defifined behavior
	
	
		1604
	
	
		Contents
	
	
		ix©ISO/IEC
	
	
		N4659
	
	
		List of Tables
	
	
		1 Alternative tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		25
	
	
		2 Ranges of characters allowed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		27
	
	
		3 Ranges of characters disallowed initially (combining characters) . . . . . . . . . . . . . . . . . .
	
	
		27
	
	
		4 Identififiers with special meaning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		28
	
	
		5 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		28
	
	
		6 Alternative representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		28
	
	
		7 Types of integer literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		30
	
	
		8 Escape sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		33
	
	
		9 String literal concatenations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		36
	
	
		10 Relations on const and volatile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		83
	
	
		11
	
	
		simple-type-specififiers and the types they specify . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		168
	
	
		12 Relationship between operator and function call notation . . . . . . . . . . . . . . . . . . . . .
	
	
		319
	
	
		13 Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		328
	
	
		14 Value of folding empty sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		363
	
	
		15 Library categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		447
	
	
		16 C   library headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		457
	
	
		17 C   headers for C library facilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		457
	
	
		18 C standard Annex K names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		458
	
	
		19 C   headers for freestanding implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		459
	
	
		20
	
	
		EqualityComparable requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		460
	
	
		21
	
	
		LessThanComparable requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		460
	
	
		22
	
	
		DefaultConstructible requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		460
	
	
		23
	
	
		MoveConstructible requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		460
	
	
		24
	
	
		CopyConstructible requirements (in addition to MoveConstructible) . . . . . . . . . . . . .
	
	
		461
	
	
		25
	
	
		MoveAssignable requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		461
	
	
		26
	
	
		CopyAssignable requirements (in addition to MoveAssignable) . . . . . . . . . . . . . . . . .
	
	
		461
	
	
		27
	
	
		Destructible requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		461
	
	
		28
	
	
		NullablePointer requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		463
	
	
		29
	
	
		Hash requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		464
	
	
		30 Descriptive variable defifinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		464
	
	
		31 Allocator requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		465
	
	
		32 Language support library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		478
	
	
		33 Diagnostics library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		513
	
	
		34 General utilities library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		530
	
	
		35
	
	
		optional::operator=(const optional&) effffects . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		560
	
	
		36
	
	
		optional::operator=(optional&&) effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		560
	
	
		37
	
	
		optional::operator=(const optional<U>&) effffects . . . . . . . . . . . . . . . . . . . . . . .
	
	
		561
	
	
		38
	
	
		optional::operator=(optional<U>&&) effffects . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		562
	
	
		List of Tables
	
	
		x©ISO/IEC
	
	
		N4659
	
	
		39
	
	
		optional::swap(optional&) effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		564
	
	
		40 Primary type category predicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		684
	
	
		41 Composite type category predicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		685
	
	
		42 Type property predicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		686
	
	
		43 Type property queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		693
	
	
		44 Type relationship predicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		694
	
	
		45 Const-volatile modififications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		695
	
	
		46 Reference modififications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		696
	
	
		47 Sign modififications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		697
	
	
		48 Array modififications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		698
	
	
		49 Pointer modififications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		698
	
	
		50 Other transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		699
	
	
		51 Expressions used to perform ratio arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		704
	
	
		52 Clock requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		708
	
	
		53 Strings library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		726
	
	
		54 Character traits requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		727
	
	
		55
	
	
		basic_string(const Allocator&) effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		742
	
	
		56
	
	
		basic_string(const basic_string&) effffects . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		742
	
	
		57
	
	
		basic_string(const basic_string&, size_type, const Allocator&) and
	
	
		basic_string(const basic_string&, size_type, size_type, const Allocator&) effffects
	
	
		742
	
	
		58
	
	
		basic_string(const charT*, size_type, const Allocator&) effffects . . . . . . . . . . . . .
	
	
		743
	
	
		59
	
	
		basic_string(const charT*, const Allocator&) effffects . . . . . . . . . . . . . . . . . . . .
	
	
		743
	
	
		60
	
	
		basic_string(size_t, charT, const Allocator&) effffects . . . . . . . . . . . . . . . . . . .
	
	
		744
	
	
		61
	
	
		basic_string(const basic_string&, const Allocator&)
	
	
		and basic_string(basic_string&&, const Allocator&) effffects . . . . . . . . . . . . . . . .
	
	
		744
	
	
		62
	
	
		operator=(const basic_string&) effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		745
	
	
		63
	
	
		compare() results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		759
	
	
		64
	
	
		basic_string_view(const charT*) effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		770
	
	
		65
	
	
		basic_string_view(const charT*, size_type) effffects . . . . . . . . . . . . . . . . . . . . .
	
	
		770
	
	
		66
	
	
		compare() results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		773
	
	
		67 Additional basic_string_view comparison overloads . . . . . . . . . . . . . . . . . . . . . . .
	
	
		775
	
	
		68 Localization library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		782
	
	
		69 Locale category facets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		786
	
	
		70 Required specializations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		787
	
	
		71
	
	
		do_in/do_out result values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		800
	
	
		72
	
	
		do_unshift result values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		800
	
	
		73 Integer conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		804
	
	
		74 Length modififier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		804
	
	
		75 Integer conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		808
	
	
		76 Floating-point conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		808
	
	
		77 Length modififier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		808
	
	
		78 Numeric conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		808
	
	
		79 Fill padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		809
	
	
		80
	
	
		do_get_date effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		816
	
	
		81 Potential setlocale data races . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		829
	
	
		82 Containers library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		830
	
	
		83 Container requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		831
	
	
		84 Reversible container requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		834
	
	
		List of Tables
	
	
		xi©ISO/IEC
	
	
		N4659
	
	
		85 Optional container operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		835
	
	
		86 Allocator-aware container requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		836
	
	
		87 Sequence container requirements (in addition to container) . . . . . . . . . . . . . . . . . . . .
	
	
		838
	
	
		88 Optional sequence container operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		841
	
	
		89 Container types with compatible nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		843
	
	
		90 Associative container requirements (in addition to container) . . . . . . . . . . . . . . . . . . .
	
	
		846
	
	
		91 Unordered associative container requirements (in addition to container) . . . . . . . . . . . . .
	
	
		857
	
	
		92 Iterators library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		955
	
	
		93 Relations among iterator categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		955
	
	
		94 Iterator requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		957
	
	
		95 Input iterator requirements (in addition to Iterator) . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		957
	
	
		96 Output iterator requirements (in addition to Iterator) . . . . . . . . . . . . . . . . . . . . . . .
	
	
		958
	
	
		97 Forward iterator requirements (in addition to input iterator) . . . . . . . . . . . . . . . . . . .
	
	
		959
	
	
		98 Bidirectional iterator requirements (in addition to forward iterator) . . . . . . . . . . . . . . . .
	
	
		960
	
	
		99 Random access iterator requirements (in addition to bidirectional iterator) . . . . . . . . . . .
	
	
		961
	
	
		100 Algorithms library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		989
	
	
		101 Numerics library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050
	
	
		102 Seed sequence requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063
	
	
		103 Uniform random bit generator requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064
	
	
		104 Random number engine requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065
	
	
		105 Random number distribution requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069
	
	
		106 Input/output library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157
	
	
		107 fmtflags effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167
	
	
		108 fmtflags constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167
	
	
		109 iostate effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167
	
	
		110 openmode effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167
	
	
		111 seekdir effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168
	
	
		112 Position type requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1172
	
	
		113 basic_ios::init() effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174
	
	
		114 basic_ios::copyfmt() effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175
	
	
		115 seekoff positioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219
	
	
		116 newoff values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219
	
	
		117 File open modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229
	
	
		118 seekoff effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1231
	
	
		119 filesystem_error(const string&, error_code) effffects . . . . . . . . . . . . . . . . . . . . . 1264
	
	
		120 filesystem_error(const string&, const path&, error_code) effffects . . . . . . . . . . . . 1264
	
	
		121 filesystem_error(const string&, const path&, const path&, error_code) effffects . . . 1265
	
	
		122 Enum path::format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1265
	
	
		123 Enum class file_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266
	
	
		124 Enum class copy_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266
	
	
		125 Enum class perms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1267
	
	
		126 Enum class perm_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1267
	
	
		127 Enum class directory_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268
	
	
		128 Regular expressions library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1297
	
	
		129 Regular expression traits class requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298
	
	
		130 syntax_option_type effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1307
	
	
		List of Tables
	
	
		xii©ISO/IEC
	
	
		N4659
	
	
		131 regex_constants::match_flag_type effffects when obtaining a match against a character con
	
	
		tainer sequence [first, last). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1308
	
	
		132 error_type values in the C locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1309
	
	
		133 Character class names and corresponding ctype masks . . . . . . . . . . . . . . . . . . . . . . . 1313
	
	
		134 match_results assignment operator effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1325
	
	
		135 Effffects of regex_match algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1329
	
	
		136 Effffects of regex_search algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1330
	
	
		137 Atomics library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342
	
	
		138 Atomic arithmetic computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1353
	
	
		139 Atomic pointer computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355
	
	
		140 Thread support library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1359
	
	
		141 C headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1461
	
	
		142 strstreambuf(streamsize) effffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1463
	
	
		143 strstreambuf(void* (*)(size_t), void (*)(void*)) effffects . . . . . . . . . . . . . . . . . 1463
	
	
		144 strstreambuf(charT*, streamsize, charT*) effffects . . . . . . . . . . . . . . . . . . . . . . . 1464
	
	
		145 seekoff positioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1466
	
	
		146 newoff values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1466
	
	
		List of Tables
	
	
		xiii©ISO/IEC
	
	
		N4659
	
	
		List of Figures
	
	
		1 Expression category taxonomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		83
	
	
		2 Directed acyclic graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		257
	
	
		3 Non-virtual base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		258
	
	
		4 Virtual base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		258
	
	
		5 Virtual and non-virtual base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		259
	
	
		6 Name lookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	
		261
	
	
		7 Stream position, offffset, and size types [non-normative] . . . . . . . . . . . . . . . . . . . . . . . 1157
	
                            
                            好例子网口号:伸出你的我的手 — 分享!
                            
                            
                            
                            
                            
                            
                        
                        
                        
                    小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
 
                 
            

网友评论
我要评论