S01EC14882:2011(E) 41 A eng<caa8rt3m0pos。·。。。。·。···-··················· 488 43 189 45 Header<catd11b>nopo···- 46 Hender <cstring>synopois 47 Primary type category predicates 48 Compoeate type category predicates 49 Type peoperty predlicates 。。。。。,,。。。。,,,。。。。。·。,。。,0 50 Type property queries。444::。。44:4::。444:::。44:。。.。4::::。。。, 505 51 Type relationship peedicntes 0s。。。。。。。。。。.。。。。。。。。。。。。。。。。。。。。。。。。。。,,0 52 Const-volatile modificatioes,... 53 Refercoce modifications ... 54 Sign modi5 catio0s:。.。.,:。。。。。.。:。。。。。:::。。。::。。。。:,,。。。.. 508 5 Array modifcatlons 600 56 Pointer modifications........ 57 Other transformations 58 Expeessioes used to perform ratio arithn4k;,。,,,,,。。 59 Clock requirements,。c。·。。·。。·。.08 Header cetine>symopsis 。,,。。。。。。。,。。,,。。。。。。,。。。。。。。。。。。。。,。,610 6司 628 62 Character traits reqtirememts,:。。,,,,,,,。,,,,::。,,,,,:,。。,,,,:。。,,,620 63 61 bhie.atring(const basie_atringk)eects。。,, 65 basic_string(comst basic_string&,size_type,size_type,comst Allocator&)effects 613 66 basic string(const charT.,aize type.const Allocatork)efeets.............644 67 hw81G.tr1ng(const charT+,con8tA1locs50T)8::。,,,,:,。。,,,::。,,:,6利 68 basic_string(size_t.charT,const Allocatork)effects 60 basic_atring(const basie atringk,coest Allocatork)and baaie string(basie string. conat Allocatork)elfeets 。。。。。。。。,,,。,,,,:。。。。,, 70 operator-(const basic_stringccharT,traits,Allocator>&)effects.............615 71 oporator(const basic.tr1ng<chrT,tra1ta,A11 ocator>》ots-..·····。···65 7 ccap8r#《)s1ttw, 3 74 75 76 Hender<ctr1ng>mopo··· 77 Hender ccuchar>symopsts. 78 Hender ceatdlib>synopsiss 79 Heer《cuchar>symopeis·····: 。44.444。。。▣4▣1。。▣。▣4444:。。。:070 80 oenlizntion lbrary summary。··········,67 81 10阳Cwy6G8。。,1,。。。,,,1·。。,,,,:1。。,,1g:。。,:,1:。。,。,67西 82 Roquired specializntions ............... 83 的1n/oou r业····…0 8 do_unshift result values 86 87 List of Tables oS0NEC2011-A1g电e0
41 Diagnostics library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 42 Header <cassert> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 43 Header <cerrno> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 44 General utilities library summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 45 Header <cstdlib> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 46 Header <cstring> 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 <ctime> 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<charT, traits, Allocator>&) effects . . . . . . . . . . . . . 645 71 operator=(const basic_string<charT, traits, Allocator>&&) effects . . . . . . . . . . . . 645 72 compare() results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 73 Potential mbstate_t data races . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 74 Header <cctype> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 75 Header <cwctype> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 76 Header <cstring> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 77 Header <cwchar> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 78 Header <cstdlib> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 79 Header <cuchar> 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
IS01EC14882:2011(E 89 ngth modifier,。:。。。,。。。4。t::。。。。:。。。。。。。。::。。。。。1。。。。,70图 90 Numeric conversions 。。。。。。。。。。。。。。。。。。。。7图 91 Fill podding., 9 do_get_date effects 好 Hender cclocale>synopeis 94 96 96 97 Optional container operations ..... 90 Allocator-aware contalner requlrements 。,。。。。。.。。,。。。。.。。。。。。。。。。。。。。。7图 100 Seqmemnce container rexmirements(in addition to containe),。。,,,,。。。。。,,,,。。。。,76 101 Optionsal serttence comtainer operations 102 Associative con减ainer requireme味s(▣addition to container) 103 Unordered asoelative container roquirements (in addition to cotainer) ,。。。。.,。。。。。,,740 101 828 l0好Relations among iterator categories.······。··························· 6820 106 1etn0 r reqmuirements。,,,,,, ,,,,,,。。。,,,,。。。,,,,,。。,,,83 107 mput iterator requirements(in addition to Iterator).。。。:....:::.....,。..。。,.83l 108 Output iteratoe roquirements(in addition to Iterato)·· ·832 106 Forward iterator roquirements(in addition to input iterator) 83 110 Bidirectional iterntor reqmirements(in addition to forward it4ag),,,。。,,,,,。。,,83 111 Random nocess iterator requirements (in addition to bidirectional iterator) .。.,...83则 112 Alrorithins libeary saminary..。。。。,...。。,,,,.,。- 002 115 Sed sequenee requirements 116 Uniform randoen mimber generator requirememts 117 Random mmber engine requirements 119 Header《cmath>yeiw 120 Hender <cstdlib>synopeis .. 121 Input/output library summary . 122 fmtflags effects 12以细t1ag0ats··········0 124 125 openrode effect试s。。。。。::。.。。。.::. 127 Position type requlrements 128 basic_ios::init()effects 129 basic_ios:copyfut (effects ....... 10 ekof至itioning”-··,,。”- 131 132 File open modes 133 w80k0fff8ct8,。:。。,。11。。。。,t:。。。。。。t。。。。:t::。。。。。。。:。,。。1067 Lisst of Tables SOMEC 2011 -All rights teserved xi描
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 <clocale> 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 <cstdlib> 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 <cmath> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984 120 Header <cstdlib> 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
1S01EC14882:2011(E) l37 Regula证pression traits claes requirements。。。。···。··。。。·。。·.-。。·。。。.。.··l077 135 yntax_opt1 on_type effects,·。。。,,,,,,。,,,,,,,,,,,,,。。。,,,,,。。。,,10g 139 regax conatanta::mateh flag type effeets when obtaining a match agninst a charcter con- 灯ceh0e[f1r5t,1a8t). 140 rrortype mlues in the C locale--····-.,·。·。。·····-.··.。。。··.10sg 141 stch.result8igmt6写rao可f8,,。。,,;;;:,,,,;,:。。,,,,,,:。,,110码 142 Effects of regeraatch algorithm············1l0 143 Elfeets of regex_soarch algorithm 145ato1 c integral typedefs.·····.·.··· 146atoa1c<1 attypes,h>typedefs·。····· 147 Atomnic arithmetie computatioeo 149 Standard macros。···········。···。。··。·。。···122 151 Standard types.。.1220 152 Standard struets...............·....·..............··.......122 154 C headers. 155金Eratr#ambuf(atreaza4z0)e线,,, ”··,12写 156 tratreaabuf(woid(-(a1z0.t),vo1d(-)(weid)eke-.····--·。····-···1233 1575tr8 treambuf(charT+,tr8ar81z8,charT+)ccts,。,。12 158 e@koff P sitionig······-·· Lit of Tables w ●0EC2011-Al nghts4wd
134 Header <cstdio> synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074 135 Header <cinttypes> 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 <inttypes.h> 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
ls0MEC14882:2011(但 List of Figures 1 Exi0@category ta08y。。。。。·1···1·1·····:。···。卡:··· 78 Directed acyclic graph。·····。··。。······。····.。·。。··23利 3 Vtln-virtl base。。。。。。。。。。。。。。。t。。。。。。1。t。。。·t。。。。。。。236 6 Lit of Figures SOMEC 2011-Al rights seserved
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 Figures xv ISO/IEC 14882:2011(E) © ISO/IEC 2011 – All rights reserved
1S01EC14882:2011(E目) Foreword ISO (the Intemational Organization for Standardization)and IEC (the Intemational Electrotechnical Commission)fomm the specialized system for worldwide standardization.National bodies that are members of ISO or IEC participate in the development of Intemational Standards through technical committees established by the respective organization to deal witn particular fields of technical activity.ISO and IEC technical committees collaborate in fields of mutual interest.Other intemational organizations.govemmental and non-governmental,in laison with ISO and IEC.also take part in the work.In the field of information technology.ISO and IEC have estabished a joint technical commitee,ISO/EC JTC 1. intemational Standards are drafted in accordance with the rules given in the ISO/EC Directives,Part 2. The main task of the joint technical committee is to prepare International Standards.Draft Intemational Standards adopted by the joint technical committee are circulated to national bodies for voting.Publication as an Intemational Standard requires approval by at least 75%of the national bodies casting a vote. Attention is drawn to the possibilty that some of the elements of this document may be the subject of patent rights.ISO and IEC shal not be held responsible for identifying any or all such patent rights. ISOMEC 14882 was prepared by Joint Technical Committee ISOVIEC JTC 1.Anformation fechnology. Subcommittee SC 22.Programming languages,their environments and sysfem software interfaces. This third edition cancels and replaces the second edition (ISO/EC 14882:2003).which has been technically revised. M SOVEC 2011 -Al riphts eserved
ISO/IEC 14882:2011(E) xvi © ISO/IEC 2011 – All rights reserved Foreword ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respective organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1. International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2. The main task of the joint technical committee is to prepare International Standards. Draft International Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as an International Standard requires approval by at least 75 % of the national bodies casting a vote. Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. ISO/IEC 14882 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming languages, their environments and system software interfaces. This third edition cancels and replaces the second edition (ISO/IEC 14882:2003), which has been technically revised