ISO15031 1-7and 5.8下载

weixin_39820780 2019-09-25 10:00:56
...全文
18 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
Contents Page 0 Introduction.............................................................................................................................................................. xiv 0.1 Prologue............................................................................................................................................................. xiv 0.2 Purpose .............................................................................................................................................................. xiv 0.3 Applications ....................................................................................................................................................... xiv 0.4 Publication and versions of this International Standard..................................................................................... xiv 0.5 Profiles and levels............................................................................................................................................... xv 0.6 Overview of the design characteristics ............................................................................................................... xv 0.6.1 Predictive coding ........................................................................................................................................ xv 0.6.2 Coding of progressive and interlaced video............................................................................................... xvi 0.6.3 Picture partitioning into macroblocks and smaller partitions..................................................................... xvi 0.6.4 Spatial redundancy reduction..................................................................................................................... xvi 0.7 How to read this specification............................................................................................................................ xvi 1 Scope ............................................................................................................................................................................ 1 2 Normative references.................................................................................................................................................. 1 3 Definitions.................................................................................................................................................................... 1 4 Abbreviations .............................................................................................................................................................. 9 5 Conventions ............................................................................................................................................................... 10 5.1 Arithmetic operators ........................................................................................................................................... 10 5.2 Logical operators ................................................................................................................................................ 10 5.3 Relational operators ............................................................................................................................................ 11 5.4 Bit-wise operators ............................................................................................................................................... 11 5.5 Assignment operators.......................................................................................................................................... 11 5.6 Range notation .................................................................................................................................................... 11 5.7 Mathematical functions....................................................................................................................................... 11 5.8 Variables, syntax elements, and tables................................................................................................................ 12 5.9 Text description of logical operations................................................................................................................. 13 5.10 Processes............................................................................................................................................................. 14 6 Source, coded, decoded and output data formats, scanning processes, and neighbouring relationships.......... 14 6.1 Bitstream formats................................................................................................................................................ 14 6.2 Source, decoded, and output picture formats ...................................................................................................... 15 6.3 Spatial subdivision of pictures and slices............................................................................................................ 20 6.4 Inverse scanning processes and derivation processes for neighbours ................................................................. 20 6.4.1 Inverse macroblock scanning process......................................................................................................... 21 6.4.2 Inverse macroblock partition and sub-macroblock partition scanning process........................................... 21 6.4.2.1 Inverse macroblock partition scanning process....................................................................................... 22 6.4.2.2 Inverse sub-macroblock partition scanning process................................................................................ 22 6.4.3 Inverse 4x4 luma block scanning process ................................................................................................... 23 6.4.4 Inverse 8x8 luma block scanning process ................................................................................................... 23 6.4.5 Derivation process of the availability for macroblock addresses................................................................ 23 6.4.6 Derivation process for neighbouring macroblock addresses and their availability..................................... 24 6.4.7 Derivation process for neighbouring macroblock addresses and their availability in MBAFF frames....... 24 6.4.8 Derivation processes for neighbouring macroblocks, blocks, and partitions .............................................. 25 6.4.8.1 Derivation process for neighbouring macroblocks ................................................................................. 26 6.4.8.2 Derivation process for neighbouring 8x8 luma block ............................................................................. 26 6.4.8.3 Derivation process for neighbouring 4x4 luma blocks............................................................................ 27 6.4.8.4 Derivation process for neighbouring 4x4 chroma blocks........................................................................ 28 6.4.8.5 Derivation process for neighbouring partitions....................................................................................... 28 6.4.9 Derivation process for neighbouring locations ........................................................................................... 30 6.4.9.1 Specification for neighbouring locations in fields and non-MBAFF frames .......................................... 30 6.4.9.2 Specification for neighbouring locations in MBAFF frames .................................................................. 31 NEN-ISO/IEC 14496-10:2006-09 Dit document is door NEN onder licentie verstrekt aan: / This document has been supplied under license by NEN to: Irdeto Access . 2006/10/30 ISO/IEC 14496-10:2005(E) iv © ISO/IEC 2005 – All rights reserved 7 Syntax and semantics................................................................................................................................................33 7.1 Method of describing syntax in tabular form ......................................................................................................33 7.2 Specification of syntax functions, categories, and descriptors............................................................................34 7.3 Syntax in tabular form.........................................................................................................................................36 7.3.1 NAL unit syntax..........................................................................................................................................36 7.3.2 Raw byte sequence payloads and RBSP trailing bits syntax.......................................................................37 7.3.2.1 Sequence parameter set RBSP syntax .....................................................................................................37 7.3.2.1.1 Scaling list syntax.............................................................................................................................38 7.3.2.1.2 Sequence parameter set extension RBSP syntax ..............................................................................39 7.3.2.2 Picture parameter set RBSP syntax .........................................................................................................39 7.3.2.3 Supplemental enhancement information RBSP syntax ...........................................................................40 7.3.2.3.1 Supplemental enhancement information message syntax.................................................................41 7.3.2.4 Access unit delimiter RBSP syntax.........................................................................................................41 7.3.2.5 End of sequence RBSP syntax ................................................................................................................41 7.3.2.6 End of stream RBSP syntax ....................................................................................................................41 7.3.2.7 Filler data RBSP syntax ..........................................................................................................................42 7.3.2.8 Slice layer without partitioning RBSP syntax .........................................................................................42 7.3.2.9 Slice data partition RBSP syntax.............................................................................................................42 7.3.2.9.1 Slice data partition A RBSP syntax..................................................................................................42 7.3.2.9.2 Slice data partition B RBSP syntax ..................................................................................................42 7.3.2.9.3 Slice data partition C RBSP syntax ..................................................................................................43 7.3.2.10 RBSP slice trailing bits syntax ..............................................................................................................43 7.3.2.11 RBSP trailing bits syntax.......................................................................................................................43 7.3.3 Slice header syntax......................................................................................................................................44 7.3.3.1 Reference picture list reordering syntax..................................................................................................45 7.3.3.2 Prediction weight table syntax ................................................................................................................46 7.3.3.3 Decoded reference picture marking syntax .............................................................................................47 7.3.4 Slice data syntax..........................................................................................................................................48 7.3.5 Macroblock layer syntax .............................................................................................................................49 7.3.5.1 Macroblock prediction syntax .................................................................................................................50 7.3.5.2 Sub-macroblock prediction syntax..........................................................................................................51 7.3.5.3 Residual data syntax................................................................................................................................52 7.3.5.3.1 Residual block CAVLC syntax ........................................................................................................53 7.3.5.3.2 Residual block CABAC syntax ........................................................................................................55 7.4 Semantics ............................................................................................................................................................56 7.4.1 NAL unit semantics.....................................................................................................................................56 7.4.1.1 Encapsulation of an SODB within an RBSP (informative).....................................................................58 7.4.1.2 Order of NAL units and association to coded pictures, access units, and video sequences ....................59 7.4.1.2.1 Order of sequence and picture parameter set RBSPs and their activation........................................59 7.4.1.2.2 Order of access units and association to coded video sequences......................................................60 7.4.1.2.3 Order of NAL units and coded pictures and association to access units ..........................................61 7.4.1.2.4 Detection of the first VCL NAL unit of a primary coded picture.....................................................62 7.4.1.2.5 Order of VCL NAL units and association to coded pictures ............................................................63 7.4.2 Raw byte sequence payloads and RBSP trailing bits semantics..................................................................63 7.4.2.1 Sequence parameter set RBSP semantics................................................................................................63 7.4.2.1.1 Scaling list semantics .......................................................................................................................68 7.4.2.1.2 Sequence parameter set extension RBSP semantics.........................................................................69 7.4.2.2 Picture parameter set RBSP semantics....................................................................................................70 7.4.2.3 Supplemental enhancement information RBSP semantics......................................................................73 7.4.2.3.1 Supplemental enhancement information message semantics ...........................................................73 7.4.2.4 Access unit delimiter RBSP semantics....................................................................................................73 7.4.2.5 End of sequence RBSP semantics ...........................................................................................................73 7.4.2.6 End of stream RBSP semantics ...............................................................................................................74 7.4.2.7 Filler data RBSP semantics .....................................................................................................................74 7.4.2.8 Slice layer without partitioning RBSP semantics....................................................................................74 7.4.2.9 Slice data partition RBSP semantics .......................................................................................................74 7.4.2.9.1 Slice data partition A RBSP semantics.............................................................................................74 7.4.2.9.2 Slice data partition B RBSP semantics.............................................................................................74 7.4.2.9.3 Slice data partition C RBSP semantics.............................................................................................74 NEN-ISO/IEC 14496-10:2006-09 Dit document is door NEN onder licentie verstrekt aan: / This document has been supplied under license by NEN to: Irdeto Access . 2006/10/30 ISO/IEC 14496-10:2005(E) © ISO/IEC 2005 – All rights reserved v 7.4.2.10 RBSP slice trailing bits semantics......................................................................................................... 75 7.4.2.11 RBSP trailing bits semantics ................................................................................................................. 75 7.4.3 Slice header semantics ................................................................................................................................ 75 7.4.3.1 Reference picture list reordering semantics ............................................................................................ 81 7.4.3.2 Prediction weight table semantics........................................................................................................... 82 7.4.3.3 Decoded reference picture marking semantics........................................................................................ 82 7.4.4 Slice data semantics .................................................................................................................................... 85 7.4.5 Macroblock layer semantics........................................................................................................................ 86 7.4.5.1 Macroblock prediction semantics ........................................................................................................... 93 7.4.5.2 Sub-macroblock prediction semantics .................................................................................................... 94 7.4.5.3 Residual data semantics .......................................................................................................................... 96 7.4.5.3.1 Residual block CAVLC semantics................................................................................................... 97 7.4.5.3.2 Residual block CABAC semantics................................................................................................... 97 8 Decoding process....................................................................................................................................................... 98 8.1 NAL unit decoding process................................................................................................................................. 99 8.2 Slice decoding process........................................................................................................................................ 99 8.2.1 Decoding process for picture order count ................................................................................................... 99 8.2.1.1 Decoding process for picture order count type 0 .................................................................................. 101 8.2.1.2 Decoding process for picture order count type 1 .................................................................................. 102 8.2.1.3 Decoding process for picture order count type 2 .................................................................................. 103 8.2.2 Decoding process for macroblock to slice group map .............................................................................. 104 8.2.2.1 Specification for interleaved slice group map type ............................................................................... 105 8.2.2.2 Specification for dispersed slice group map type.................................................................................. 105 8.2.2.3 Specification for foreground with left-over slice group map type ........................................................ 105 8.2.2.4 Specification for box-out slice group map types................................................................................... 106 8.2.2.5 Specification for raster scan slice group map types .............................................................................. 106 8.2.2.6 Specification for wipe slice group map types ....................................................................................... 106 8.2.2.7 Specification for explicit slice group map type..................................................................................... 107 8.2.2.8 Specification for conversion of map unit to slice group map to macroblock to slice group map ......... 107 8.2.3 Decoding process for slice data partitioning ............................................................................................. 107 8.2.4 Decoding process for reference picture lists construction......................................................................... 108 8.2.4.1 Decoding process for picture numbers.................................................................................................. 108 8.2.4.2 Initialisation process for reference picture lists..................................................................................... 109 8.2.4.2.1 Initialisation process for the reference picture list for P and SP slices in frames........................... 109 8.2.4.2.2 Initialisation process for the reference picture list for P and SP slices in fields............................. 110 8.2.4.2.3 Initialisation process for reference picture lists for B slices in frames........................................... 110 8.2.4.2.4 Initialisation process for reference picture lists for B slices in fields............................................. 111 8.2.4.2.5 Initialisation process for reference picture lists in fields ................................................................ 112 8.2.4.3 Reordering process for reference picture lists....................................................................................... 113 8.2.4.3.1 Reordering process of reference picture lists for short-term reference pictures............................. 113 8.2.4.3.2 Reordering process of reference picture lists for long-term reference pictures.............................. 114 8.2.5 Decoded reference picture marking process ............................................................................................. 114 8.2.5.1 Sequence of operations for decoded reference picture marking process............................................... 115 8.2.5.2 Decoding process for gaps in frame_num............................................................................................. 115 8.2.5.3 Sliding window decoded reference picture marking process ................................................................ 116 8.2.5.4 Adaptive memory control decoded reference picture marking process ................................................ 116 8.2.5.4.1 Marking process of a short-term reference picture as “unused for reference” ............................... 116 8.2.5.4.2 Marking process of a long-term reference picture as “unused for reference” ................................ 117 8.2.5.4.3 Assignment process of a LongTermFrameIdx to a short-term reference picture ........................... 117 8.2.5.4.4 Decoding process for MaxLongTermFrameIdx ............................................................................. 117 8.2.5.4.5 Marking process of all reference pictures as “unused for reference” and setting MaxLongTermFrameIdx to “no long-term frame indices”............................................................................... 118 8.2.5.4.6 Process for assigning a long-term frame index to the current picture ............................................ 118 8.3 Intra prediction process..................................................................................................................................... 118 8.3.1 Intra_4x4 prediction process for luma samples......................................................................................... 119 8.3.1.1 Derivation process for the Intra4x4PredMode ...................................................................................... 119 8.3.1.2 Intra_4x4 sample prediction.................................................................................................................. 121 8.3.1.2.1 Specification of Intra_4x4_Vertical prediction mode .................................................................... 122 8.3.1.2.2 Specification of Intra_4x4_Horizontal prediction mode ................................................................ 122 8.3.1.2.3 Specification of Intra_4x4_DC prediction mode............................................................................ 122 NEN-ISO/IEC 14496-10:2006-09 Dit document is door NEN onder licentie verstrekt aan: / This document has been supplied under license by NEN to: Irdeto Access . 2006/10/30 ISO/IEC 14496-10:2005(E) vi © ISO/IEC 2005 – All rights reserved 8.3.1.2.4 Specification of Intra_4x4_Diagonal_Down_Left prediction mode ..............................................123 8.3.1.2.5 Specification of Intra_4x4_Diagonal_Down_Right prediction mode ............................................123 8.3.1.2.6 Specification of Intra_4x4_Vertical_Right prediction mode..........................................................123 8.3.1.2.7 Specification of Intra_4x4_Horizontal_Down prediction mode.....................................................124 8.3.1.2.8 Specification of Intra_4x4_Vertical_Left prediction mode............................................................124 8.3.1.2.9 Specification of Intra_4x4_Horizontal_Up prediction mode..........................................................124 8.3.2 Intra_8x8 prediction process for luma samples.........................................................................................125 8.3.2.1 Derivation process for Intra8x8PredMode ............................................................................................125 8.3.2.2 Intra_8x8 sample prediction..................................................................................................................127 8.3.2.2.1 Reference sample filtering process for Intra_8x8 sample prediction .............................................128 8.3.2.2.2 Specification of Intra_8x8_Vertical prediction mode.....................................................................129 8.3.2.2.3 Specification of Intra_8x8_Horizontal prediction mode ................................................................129 8.3.2.2.4 Specification of Intra_8x8_DC prediction mode............................................................................129 8.3.2.2.5 Specification of Intra_8x8_Diagonal_Down_Left prediction mode ..............................................130 8.3.2.2.6 Specification of Intra_8x8_Diagonal_Down_Right prediction mode ............................................130 8.3.2.2.7 Specification of Intra_8x8_Vertical_Right prediction mode..........................................................130 8.3.2.2.8 Specification of Intra_8x8_Horizontal_Down prediction mode.....................................................131 8.3.2.2.9 Specification of Intra_8x8_Vertical_Left prediction mode............................................................131 8.3.2.2.10 Specification of Intra_8x8_Horizontal_Up prediction mode........................................................131 8.3.3 Intra_16x16 prediction process for luma samples.....................................................................................132 8.3.3.1 Specification of Intra_16x16_Vertical prediction mode .......................................................................133 8.3.3.2 Specification of Intra_16x16_Horizontal prediction mode ...................................................................133 8.3.3.3 Specification of Intra_16x16_DC prediction mode...............................................................................133 8.3.3.4 Specification of Intra_16x16_Plane prediction mode ...........................................................................133 8.3.4 Intra prediction process for chroma samples.............................................................................................134 8.3.4.1 Specification of Intra_Chroma_DC prediction mode............................................................................134 8.3.4.2 Specification of Intra_Chroma_Horizontal prediction mode ................................................................136 8.3.4.3 Specification of Intra_Chroma_Vertical prediction mode ....................................................................136 8.3.4.4 Specification of Intra_Chroma_Plane prediction mode ........................................................................136 8.3.5 Sample construction process for I_PCM macroblocks..............................................................................137 8.4 Inter prediction process .....................................................................................................................................137 8.4.1 Derivation process for motion vector components and reference indices .................................................139 8.4.1.1 Derivation process for luma motion vectors for skipped macroblocks in P and SP slices ....................140 8.4.1.2 Derivation process for luma motion vectors for B_Skip, B_Direct_16x16, and B_Direct_8x8 ...........141 8.4.1.2.1 Derivation process for the co-located 4x4 sub-macroblock partitions............................................141 8.4.1.2.2 Derivation process for spatial direct luma motion vector and reference index prediction mode....144 8.4.1.2.3 Derivation process for temporal direct luma motion vector and reference index prediction mode 146 8.4.1.3 Derivation process for luma motion vector prediction..........................................................................148 8.4.1.3.1 Derivation process for median luma motion vector prediction.......................................................149 8.4.1.3.2 Derivation process for motion data of neighbouring partitions ......................................................150 8.4.1.4 Derivation process for chroma motion vectors......................................................................................151 8.4.2 Decoding process for Inter prediction samples .........................................................................................151 8.4.2.1 Reference picture selection process.......................................................................................................152 8.4.2.2 Fractional sample interpolation process ................................................................................................153 8.4.2.2.1 Luma sample interpolation process ................................................................................................154 8.4.2.2.2 Chroma sample interpolation process.............................................................................................157 8.4.2.3 Weighted sample prediction process.....................................................................................................158 8.4.2.3.1 Default weighted sample prediction process ..................................................................................158 8.4.2.3.2 Weighted sample prediction process ..............................................................................................159 8.5 Transform coefficient decoding process and picture construction process prior to deblocking filter process ..161 8.5.1 Specification of transform decoding process for 4x4 luma residual blocks ..............................................162 8.5.2 Specification of transform decoding process for luma samples of Intra_16x16 macroblock prediction mode 162 8.5.3 Specification of transform decoding process for 8x8 luma residual blocks ..............................................163 8.5.4 Specification of transform decoding process for chroma samples ............................................................164 8.5.5 Inverse scanning process for transform coefficients .................................................................................166 8.5.6 Inverse scanning process for 8x8 luma transform coefficients .................................................................167 8.5.7 Derivation process for the chroma quantisation parameters and scaling function ....................................169 NEN-ISO/IEC 14496-10:2006-09 Dit document is door NEN onder licentie verstrekt aan: / This document has been supplied under license by NEN to: Irdeto Access . 2006/10/30 ISO/IEC 14496-10:2005(E) © ISO/IEC 2005 – All rights reserved vii 8.5.8 Scaling and transformation process for luma DC transform coefficients for Intra_16x16 macroblock type ........................................................................................................................................................... 171 8.5.9 Scaling and transformation process for chroma DC transform coefficients.............................................. 171 8.5.10 Scaling and transformation process for residual 4x4 blocks ..................................................................... 173 8.5.11 Scaling and transformation process for residual 8x8 luma blocks ............................................................ 175 8.5.12 Picture construction process prior to deblocking filter process................................................................. 178 8.5.13 Residual colour transform process ............................................................................................................ 179 8.6 Decoding process for P macroblocks in SP slices or SI macroblocks............................................................... 179 8.6.1 SP decoding process for non-switching pictures....................................................................................... 180 8.6.1.1 Luma transform coefficient decoding process ...................................................................................... 180 8.6.1.2 Chroma transform coefficient decoding process................................................................................... 181 8.6.2 SP and SI slice decoding process for switching pictures .......................................................................... 182 8.6.2.1 Luma transform coefficient decoding process ...................................................................................... 183 8.6.2.2 Chroma transform coefficient decoding process................................................................................... 183 8.7 Deblocking filter process .................................................................................................................................. 184 8.7.1 Filtering process for block edges .............................................................................................................. 188 8.7.2 Filtering process for a set of samples across a horizontal or vertical block edge...................................... 189 8.7.2.1 Derivation process for the luma content dependent boundary filtering strength................................... 190 8.7.2.2 Derivation process for the thresholds for each block edge.................................................................... 191 8.7.2.3 Filtering process for edges with bS less than 4 ..................................................................................... 193 8.7.2.4 Filtering process for edges for bS equal to 4......................................................................................... 194 9 Parsing process........................................................................................................................................................ 195 9.1 Parsing process for Exp-Golomb codes ............................................................................................................ 195 9.1.1 Mapping process for signed Exp-Golomb codes ...................................................................................... 197 9.1.2 Mapping process for coded block pattern ................................................................................................. 197 9.2 CAVLC parsing process for transform coefficient levels ................................................................................. 200 9.2.1 Parsing process for total number of transform coefficient levels and trailing ones .................................. 201 9.2.2 Parsing process for level information ....................................................................................................... 205 9.2.2.1 Parsing process for level_prefix............................................................................................................ 206 9.2.3 Parsing process for run information.......................................................................................................... 206 9.2.4 Combining level and run information ....................................................................................................... 209 9.3 CABAC parsing process for slice data.............................................................................................................. 209 9.3.1 Initialisation process ................................................................................................................................. 210 9.3.1.1 Initialisation process for context variables............................................................................................ 211 9.3.1.2 Initialisation process for the arithmetic decoding engine...................................................................... 222 9.3.2 Binarization process.................................................................................................................................. 222 9.3.2.1 Unary (U) binarization process ............................................................................................................. 224 9.3.2.2 Truncated unary (TU) binarization process........................................................................................... 224 9.3.2.3 Concatenated unary/ k-th order Exp-Golomb (UEGk) binarization process......................................... 225 9.3.2.4 Fixed-length (FL) binarization process................................................................................................. 225 9.3.2.5 Binarization process for macroblock type and sub-macroblock type.................................................... 226 9.3.2.6 Binarization process for coded block pattern........................................................................................ 229 9.3.2.7 Binarization process for mb_qp_delta................................................................................................... 229 9.3.3 Decoding process flow.............................................................................................................................. 230 9.3.3.1 Derivation process for ctxIdx................................................................................................................ 230 9.3.3.1.1 Assignment process of ctxIdxInc using neighbouring syntax elements ......................................... 232 9.3.3.1.1.1 Derivation process of ctxIdxInc for the syntax element mb_skip_flag ................................... 232 9.3.3.1.1.2 Derivation process of ctxIdxInc for the syntax element mb_field_decoding_flag.................. 232 9.3.3.1.1.3 Derivation process of ctxIdxInc for the syntax element mb_type ........................................... 233 9.3.3.1.1.4 Derivation process of ctxIdxInc for the syntax element coded_block_pattern........................ 233 9.3.3.1.1.5 Derivation process of ctxIdxInc for the syntax element mb_qp_delta .................................... 234 9.3.3.1.1.6 Derivation process of ctxIdxInc for the syntax elements ref_idx_l0 and ref_idx_l1............... 234 9.3.3.1.1.7 Derivation process of ctxIdxInc for the syntax elements mvd_l0 and mvd_l1 ....................... 235 9.3.3.1.1.8 Derivation process of ctxIdxInc for the syntax element intra_chroma_pred_mode................ 237 9.3.3.1.1.9 Derivation process of ctxIdxInc for the syntax element coded_block_flag ............................ 237 9.3.3.1.1.10 Derivation process of ctxIdxInc for the syntax element transform_size_8x8_flag ............... 238 9.3.3.1.2 Assignment process of ctxIdxInc using prior decoded bin values.................................................. 239 9.3.3.1.3 Assignment process of ctxIdxInc for syntax elements significant_coeff_flag, last_significant_coeff_flag, and coeff_abs_level_minus1 ................................................................................ 239 9.3.3.2 Arithmetic decoding process................................................................................................................. 242 NEN-ISO/IEC 14496-10:2006-09 Dit document is door NEN onder licentie verstrekt aan: / This document has been supplied under license by NEN to: Irdeto Access . 2006/10/30 ISO/IEC 14496-10:2005(E) viii © ISO/IEC 2005 – All rights reserved 9.3.3.2.1 Arithmetic decoding process for a binary decision ........................................................................243 9.3.3.2.1.1 State transition process ............................................................................................................243 9.3.3.2.2 Renormalization process in the arithmetic decoding engine ..........................................................246 9.3.3.2.3 Bypass decoding process for binary decisions ...............................................................................247 9.3.3.2.4 Decoding process for binary decisions before termination.............................................................247 9.3.4 Arithmetic encoding process (informative)...............................................................................................248 9.3.4.1 Initialisation process for the arithmetic encoding engine (informative)................................................248 9.3.4.2 Encoding process for a binary decision (informative)...........................................................................248 9.3.4.3 Renormalization process in the arithmetic encoding engine (informative)...........................................249 9.3.4.4 Bypass encoding process for binary decisions (informative) ................................................................251 9.3.4.5 Encoding process for a binary decision before termination (informative) ............................................252 9.3.4.6 Byte stuffing process (informative).......................................................................................................254 Annex A Profiles and levels............................................................................................................................................255 A.1 Requirements on video decoder capability........................................................................................................255 A.2 Profiles ..............................................................................................................................................................255 A.2.1 Baseline profile .........................................................................................................................................255 A.2.2 Main profile...............................................................................................................................................256 A.2.3 Extended profile ........................................................................................................................................256 A.2.4 High profile ...............................................................................................................................................256 A.2.5 High 10 profile ..........................................................................................................................................257 A.2.6 High 4:2:2 profile......................................................................................................................................257 A.2.7 High 4:4:4 profile......................................................................................................................................258 A.3 Levels................................................................................................................................................................258 A.3.1 Level limits common to the Baseline, Main, and Extended profiles.........................................................258 A.3.2 Level limits common to the High, High 10, High 4:2:2, and High 4:4:4 profiles.....................................260 A.3.3 Profile-specific level limits .......................................................................................................................261 A.3.3.1 Baseline profile limits...........................................................................................................................262 A.3.3.2 Main, High, High 10, High 4:2:2, or High 4:4:4 profile limits.............................................................263 A.3.3.3 Extended Profile Limits........................................................................................................................264 A.3.4 Effect of level limits on frame rate (informative)......................................................................................266 Annex B Byte stream format..........................................................................................................................................269 B.1 Byte stream NAL unit syntax and semantics ....................................................................................................269 B.1.1 Byte stream NAL unit syntax....................................................................................................................269 B.1.2 Byte stream NAL unit semantics...............................................................................................................269 B.2 Byte stream NAL unit decoding process...........................................................................................................270 B.3 Decoder byte-alignment recovery (informative) ...............................................................................................270 Annex C Hypothetical reference decoder .....................................................................................................................272 C.1 Operation of coded picture buffer (CPB) ..........................................................................................................274 C.1.1 Timing of bitstream arrival .......................................................................................................................274 C.1.2 Timing of coded picture removal ..............................................................................................................275 C.2 Operation of the decoded picture buffer (DPB) ................................................................................................276 C.2.1 Decoding of gaps in frame_num and storage of "non-existing" frames....................................................276 C.2.2 Picture decoding and output......................................................................................................................276 C.2.3 Removal of pictures from the DPB before possible insertion of the current picture.................................277 C.2.4 Current decoded picture marking and storage...........................................................................................277 C.2.4.1 Marking and storage of a reference decoded picture into the DPB.......................................................277 C.2.4.2 Storage of a non-reference picture into the DPB ..................................................................................277
PowerISO功能介绍: 1、支持所有常见的光盘映像文件格式,包括ISO、BIN、NRG、CDI、DAA等。 注:DAA (Direct-Access-Archive) 是PowerISO生成的一种高级映像文件格式,它支持普通ISO文件所不具有的一些特性,如压缩,加密以及分卷等。PowerISO能够像处理其它光盘镜像文件一样处理DAA文件,如展开、刻录以及加载到虚拟光驱等。 2、打开、展开 ISO文件。 3、从光盘或硬盘文件生成ISO或BIN文件。 4、PowerISO使用方便,支持系统快捷菜单集成,拖放、以及剪贴版等常见操作。 5、使用内置虚拟光驱直接加载ISO文件,您无须再单独安装其它的虚拟光驱软件。 6、刻录镜像文件。PowerISO支持刻录CD,DVD,以及蓝光光盘。 7、从MP3,FLAC,APE,WMA或BIN文件刻录音乐光盘。 8、提取音轨到MP3,FLAC,APE,WMA或BIN文件。 9、编辑已经存在的ISO文件。 10、使用内置虚拟光驱直接加载ISO文件,您无须再单独安装其它的虚拟光驱软件。 11、转换镜像文件格式。 12、支持32位和64位Windows操作系统。 13、制作可启动U盘。 14、制作可启动光盘或镜像文件。 15、PowerISO使用方便,支持系统快捷菜单集成,拖放、以及剪贴版等常见操作。 PowerISO支持的光盘文件系统: 标准ISO-9660 Joliet ISO 扩展(CDs under Windows 95 and higher) RockRidge ISO 扩展 (CDs under FreeBSD, Linux) El Torito 扩展 (bootable CDs) XBOX DVD Format APPLE HFS APPLE HFS+ PowerISO支持的光盘映像文件格式: ISO (Generic CD images) BIN/CUE BIN (CDRWin) IMA/IMG (Generic disk images) CIF (Easy CD Creator) NRG (Nero Burning ROM VDI (Virtuo CD Manager) C2D (WinOnCD) BWI/BWT (BlinkWrite) CDI (DiscJuggler) IMG/CCD (CloneCD) MDF/MDS (Alcohol120%) VCD (Farstone Virtual Drive) VaporCD (Noum Vapor CDROM) P01/MD1/XA (Gear) TAO/DAO (Duplicator) PDI (Instant Copy) DMG (APPLE Disk Image)
Contents Contents iii List of Tables xi List of Figures xv 1 General 1 1.1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Normative references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 Terms and definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Implementation compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.5 Structure of this International Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.6 Syntax notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.7 The C++ memory model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.8 The C++ object model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.9 Program execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.10 Multi-threaded executions and data races . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.11 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2 Lexical conventions 17 2.1 Separate translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 Phases of translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3 Character sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.4 Trigraph sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.5 Preprocessing tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.6 Alternative tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.7 Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.8 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.9 Header names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.10 Preprocessing numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.11 Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.12 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.13 Operators and punctuators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.14 Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3 Basic concepts 34 3.1 Declarations and definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2 One definition rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.4 Name lookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.5 Program and linkage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.6 Start and termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.7 Storage duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.8 Object lifetime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.9 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.10 Lvalues and rvalues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Contents iii ISO/IEC 14882:2011(E) © ISO/IEC 2011 – All rights reserved 3.11 Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4 Standard conversions 81 4.1 Lvalue-to-rvalue conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.2 Array-to-pointer conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.3 Function-to-pointer conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.4 Qualification conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.5 Integral promotions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.6 Floating point promotion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.7 Integral conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.8 Floating point conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.9 Floating-integral conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.10 Pointer conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.11 Pointer to member conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.12 Boolean conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4.13 Integer conversion rank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 5 Expressions 87 5.1 Primary expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.2 Postfix expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.3 Unary expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 5.4 Explicit type conversion (cast notation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 5.5 Pointer-to-member operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 5.6 Multiplicative operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 5.7 Additive operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 5.8 Shift operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 5.9 Relational operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 5.10 Equality operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 5.11 Bitwise AND operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.12 Bitwise exclusive OR operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.13 Bitwise inclusive OR operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.14 Logical AND operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.15 Logical OR operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 5.16 Conditional operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 5.17 Assignment and compound assignment operators . . . . . . . . . . . . . . . . . . . . . . . . 125 5.18 Comma operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.19 Constant expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 6 Statements 130 6.1 Labeled statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 6.2 Expression statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 6.3 Compound statement or block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 6.4 Selection statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 6.5 Iteration statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 6.6 Jump statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 6.7 Declaration statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 6.8 Ambiguity resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 7 Declarations 140 7.1 Specifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 7.2 Enumeration declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Contents iv ISO/IEC 14882:2011(E) © ISO/IEC 2011 – All rights reserved 7.3 Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 7.4 The asm declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 7.5 Linkage specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 7.6 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 8 Declarators 182 8.1 Type names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 8.2 Ambiguity resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 8.3 Meaning of declarators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 8.4 Function definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 8.5 Initializers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 9 Classes 216 9.1 Class names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 9.2 Class members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 9.3 Member functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 9.4 Static members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 9.5 Unions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.6 Bit-fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 9.7 Nested class declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 9.8 Local class declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 9.9 Nested type names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 10 Derived classes 233 10.1 Multiple base classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 10.2 Member name lookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 10.3 Virtual functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 10.4 Abstract classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 11 Member access control 246 11.1 Access specifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 11.2 Accessibility of base classes and base class members . . . . . . . . . . . . . . . . . . . . . . . 249 11.3 Friends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 11.4 Protected member access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 11.5 Access to virtual functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 11.6 Multiple access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 11.7 Nested classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 12 Special member functions 257 12.1 Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 12.2 Temporary objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 12.3 Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 12.4 Destructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 12.5 Free store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 12.6 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 12.7 Construction and destruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 12.8 Copying and moving class objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 12.9 Inheriting constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 13 Overloading 289 13.1 Overloadable declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 Contents v ISO/IEC 14882:2011(E) © ISO/IEC 2011 – All rights reserved 13.2 Declaration matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 13.3 Overload resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 13.4 Address of overloaded function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 13.5 Overloaded operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 13.6 Built-in operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 14 Templates 321 14.1 Template parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 14.2 Names of template specializations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 14.3 Template arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 14.4 Type equivalence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 14.5 Template declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 14.6 Name resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 14.7 Template instantiation and specialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 14.8 Function template specializations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 15 Exception handling 400 15.1 Throwing an exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 15.2 Constructors and destructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 15.3 Handling an exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 15.4 Exception specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 15.5 Special functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 16 Preprocessing directives 411 16.1 Conditional inclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 16.2 Source file inclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 16.3 Macro replacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 16.4 Line control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 16.5 Error directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 16.6 Pragma directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 16.7 Null directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 16.8 Predefined macro names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 16.9 Pragma operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 17 Library introduction 424 17.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 17.2 The C standard library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 17.3 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 17.4 Additional definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 17.5 Method of description (Informative) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 17.6 Library-wide requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 18 Language support library 454 18.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 18.2 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 18.3 Implementation properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 18.4 Integer types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 18.5 Start and termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 18.6 Dynamic memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 18.7 Type identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 18.8 Exception handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 Contents vi ISO/IEC 14882:2011(E) © ISO/IEC 2011 – All rights reserved 18.9 Initializer lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 18.10 Other runtime support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 19 Diagnostics library 484 19.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 19.2 Exception classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 19.3 Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 19.4 Error numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 19.5 System error support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 20 General utilities library 500 20.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 20.2 Utility components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 20.3 Pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 20.4 Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 20.5 Class template bitset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 20.6 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 20.7 Smart pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 20.8 Function objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 20.9 Metaprogramming and type traits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 20.10 Compile-time rational arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 20.11 Time utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 20.12 Class template scoped_allocator_adaptor . . . . . . . . . . . . . . . . . . . . . . . . . . . 620 20.13 Class type_index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 21 Strings library 628 21.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628 21.2 Character traits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628 21.3 String classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 21.4 Class template basic_string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638 21.5 Numeric conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665 21.6 Hash support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666 21.7 Null-terminated sequence utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667 22 Localization library 671 22.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671 22.2 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671 22.3 Locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672 22.4 Standard locale categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 22.5 Standard code conversion facets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 22.6 C library locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726 23 Containers library 728 23.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728 23.2 Container requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728 23.3 Sequence containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754 23.4 Associative containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786 23.5 Unordered associative containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803 23.6 Container adaptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819 24 Iterators library 829 Contents vii ISO/IEC 14882:2011(E) © ISO/IEC 2011 – All rights reserved 24.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829 24.2 Iterator requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829 24.3 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834 24.4 Iterator primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837 24.5 Iterator adaptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841 24.6 Stream iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855 25 Algorithms library 863 25.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863 25.2 Non-modifying sequence operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873 25.3 Mutating sequence operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878 25.4 Sorting and related operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887 25.5 C library algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900 26 Numerics library 902 26.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902 26.2 Numeric type requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902 26.3 The floating-point environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903 26.4 Complex numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904 26.5 Random number generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914 26.6 Numeric arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959 26.7 Generalized numeric operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981 26.8 C library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984 27 Input/output library 989 27.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 989 27.2 Iostreams requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 990 27.3 Forward declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 990 27.4 Standard iostream objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992 27.5 Iostreams base classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994 27.6 Stream buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013 27.7 Formatting and manipulators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023 27.8 String-based streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049 27.9 File-based streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061 28 Regular expressions library 1076 28.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076 28.2 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076 28.3 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077 28.4 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079 28.5 Namespace std::regex_constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086 28.6 Class regex_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089 28.7 Class template regex_traits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089 28.8 Class template basic_regex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1092 28.9 Class template sub_match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1097 28.10 Class template match_results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1103 28.11 Regular expression algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108 28.12 Regular expression iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113 28.13 Modified ECMAScript regular expression grammar . . . . . . . . . . . . . . . . . . . . . . . 1119 29 Atomic operations library 1122 Contents viii ISO/IEC 14882:2011(E) © ISO/IEC 2011 – All rights reserved 29.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122 29.2 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122 29.3 Order and consistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1125 29.4 Lock-free property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1128 29.5 Atomic types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1128 29.6 Operations on atomic types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1132 29.7 Flag type and operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1137 29.8 Fences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138 30 Thread support library 1140 30.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140 30.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140 30.3 Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143 30.4 Mutual exclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149 30.5 Condition variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162 30.6 Futures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1170 A Grammar summary 1187 A.1 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1187 A.2 Lexical conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1187 A.3 Basic concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1192 A.4 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1192 A.5 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195 A.6 Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1196 A.7 Declarators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1200 A.8 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1202 A.9 Derived classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203 A.10 Special member functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203 A.11 Overloading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204 A.12 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204 A.13 Exception handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205 A.14 Preprocessing directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205 B Implementation quantities 1207 C Compatibility 1209 C.1 C++ and ISO C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209 C.2 C++ and ISO C++ 2003 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218 C.3 C standard library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225 D Compatibility features 1229 D.1 Increment operator with bool operand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 D.2 register keyword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 D.3 Implicit declaration of copy functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 D.4 Dynamic exception specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 D.5 C standard library headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 D.6 Old iostreams members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1230 D.7 char* streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1231 D.8 Function objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1240 D.9 Binders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1243 D.10 auto_ptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245 Contents ix ISO/IEC 14882:2011(E) © ISO/IEC 2011 – All rights reserved D.11 Violating exception-specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1247 E Universal character names for identifier characters 1249 E.1 Ranges of characters allowed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 E.2 Ranges of characters disallowed initially . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 F Cross references 1250 Index 1268 Index of grammar productions 1297 Index of library names 1300 Index of implementation-defined behavior 1336 Contents x ISO/IEC 14882:2011(E) © ISO/IEC 2011 – All rights reserved List of Tables 1 Trigraph sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2 Alternative tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3 Identifiers with special meaning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5 Alternative representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6 Types of integer constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 7 Escape sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 8 String literal concatenations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 9 Relations on const and volatile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 10 simple-type-specifiers and the types they specify . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 11 Relationship between operator and function call notation . . . . . . . . . . . . . . . . . . . . . . 297 12 Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 13 Library categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 14 C++ library headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 15 C++ headers for C library facilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 16 C++ headers for freestanding implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 17 EqualityComparable requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 18 LessThanComparable requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 19 DefaultConstructible requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 20 MoveConstructible requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 21 CopyConstructible requirements (in addition to MoveConstructible) . . . . . . . . . . . . . . . 438 22 MoveAssignable requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 23 CopyAssignable requirements(in addition to MoveAssignable) . . . . . . . . . . . . . . . . . . . 438 24 Destructible requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 25 NullablePointer requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 26 Hash requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 27 Descriptive variable definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 28 Allocator requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 29 Language support library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 30 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 31 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 32 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 33 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 34 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 35 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 36 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 37 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 38 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 39 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 40 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 List of Tables xi ISO/IEC 14882:2011(E) © ISO/IEC 2011 – All rights reserved 41 Diagnostics library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 42 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 43 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 44 General utilities library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 45 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 46 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 47 Primary type category predicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 48 Composite type category predicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 49 Type property predicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 50 Type property queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 51 Type relationship predicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596 52 Const-volatile modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 53 Reference modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 54 Sign modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 55 Array modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 56 Pointer modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 57 Other transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 58 Expressions used to perform ratio arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 59 Clock requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 60 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619 61 Strings library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628 62 Character traits requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629 63 basic_string(const Allocator&) effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643 64 basic_string(const basic_string&) effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643 65 basic_string(const basic_string&, size_type, size_type, const Allocator&) effects . 643 66 basic_string(const charT*, size_type, const Allocator&) effects . . . . . . . . . . . . . . 644 67 basic_string(const charT*, const Allocator&) effects . . . . . . . . . . . . . . . . . . . . . 644 68 basic_string(size_t, charT, const Allocator&) effects . . . . . . . . . . . . . . . . . . . . 644 69 basic_string(const basic_string&, const Allocator&) and basic_string(basic_string&&, const Allocator&) effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 70 operator=(const basic_string&) effects . . . . . . . . . . . . . 645 71 operator=(const basic_string&&) effects . . . . . . . . . . . . 645 72 compare() results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 73 Potential mbstate_t data races . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 74 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 75 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 76 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 77 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 78 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 79 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670 80 Localization library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671 81 Locale category facets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675 82 Required specializations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676 83 do_in/do_out result values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694 84 do_unshift result values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694 85 Integer conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698 86 Length modifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698 87 Integer conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702 List of Tables xii ISO/IEC 14882:2011(E) © ISO/IEC 2011 – All rights reserved 88 Floating-point conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 89 Length modifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 90 Numeric conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 91 Fill padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704 92 do_get_date effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 93 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726 94 Potential setlocale data races . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727 95 Containers library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728 96 Container requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729 97 Reversible container requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731 98 Optional container operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732 99 Allocator-aware container requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733 100 Sequence container requirements (in addition to container) . . . . . . . . . . . . . . . . . . . . . 735 101 Optional sequence container operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737 102 Associative container requirements (in addition to container) . . . . . . . . . . . . . . . . . . . . 740 103 Unordered associative container requirements (in addition to container) . . . . . . . . . . . . . . 746 104 Iterators library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829 105 Relations among iterator categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829 106 Iterator requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831 107 Input iterator requirements (in addition to Iterator) . . . . . . . . . . . . . . . . . . . . . . . . . 831 108 Output iterator requirements (in addition to Iterator) . . . . . . . . . . . . . . . . . . . . . . . . 832 109 Forward iterator requirements (in addition to input iterator) . . . . . . . . . . . . . . . . . . . . 833 110 Bidirectional iterator requirements (in addition to forward iterator) . . . . . . . . . . . . . . . . . 833 111 Random access iterator requirements (in addition to bidirectional iterator) . . . . . . . . . . . . 834 112 Algorithms library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863 113 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900 114 Numerics library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902 115 Seed sequence requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915 116 Uniform random number generator requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 916 117 Random number engine requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 917 118 Random number distribution requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921 119 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984 120 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985 121 Input/output library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 989 122 fmtflags effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999 123 fmtflags constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999 124 iostate effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999 125 openmode effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000 126 seekdir effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000 127 Position type requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 128 basic_ios::init() effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007 129 basic_ios::copyfmt() effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 130 seekoff positioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054 131 newoff values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054 132 File open modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064 133 seekoff effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067 List of Tables xiii ISO/IEC 14882:2011(E) © ISO/IEC 2011 – All rights reserved 134 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074 135 Header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075 136 Regular expressions library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076 137 Regular expression traits class requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077 138 syntax_option_type effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087 139 regex_constants::match_flag_type effects when obtaining a match against a character container sequence [first,last). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087 140 error_type values in the C locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1088 141 match_results assignment operator effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105 142 Effects of regex_match algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109 143 Effects of regex_search algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110 144 Atomics library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122 145 atomic integral typedefs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131 146 atomic typedefs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1132 147 Atomic arithmetic computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136 148 Thread support library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140 149 Standard macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225 150 Standard values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225 151 Standard types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1226 152 Standard structs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1226 153 Standard functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1226 154 C headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 155 strstreambuf(streamsize) effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1233 156 strstreambuf(void* (*)(size_t), void (*)(void*)) effects . . . . . . . . . . . . . . . . . . 1233 157 strstreambuf(charT*, streamsize, charT*) effects . . . . . . . . . . . . . . . . . . . . . . . . 1234 158 seekoff positioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236 159 newoff values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236 List of Tables xiv ISO/IEC 14882:2011(E) © ISO/IEC 2011 – All rights reserved List of Figures 1 Expression category taxonomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 2 Directed acyclic graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 3 Non-virtual base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 4 Virtual base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 5 Virtual and non-virtual base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 6 Name lookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 7 Stream position, offset, and size types [non-normative] . . . . . . . . . . . . . . . . . . . . . . . . 989 List of

12,792

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧