home *** CD-ROM | disk | FTP | other *** search
Unknown | 1995-07-02 | 560.0 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was not able to be converted.
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| file
| data
| default
| |
100%
| gt2
| Kopftext: 'HELP('
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 48 45 4c 50 28 00 00 00 | c9 00 00 00 34 11 00 00 |HELP(...|....4...|
|00000010| 58 67 00 00 00 fd ff ff | 00 00 00 00 80 02 00 00 |Xg......|........|
|00000020| 00 01 00 00 00 00 00 00 | 24 00 00 00 46 52 45 45 |........|$...FREE|
|00000030| 54 00 00 00 ff ff ff ff | 80 00 00 00 46 ff ff ff |T.......|....F...|
|00000040| c5 50 e5 2a e1 02 00 00 | 13 00 00 00 00 00 00 00 |.P.*....|........|
|00000050| 21 52 6f 6f 74 00 00 00 | 64 03 00 00 46 ff ff ff |!Root...|d...F...|
|00000060| b8 5f e5 2a ce 0d 00 00 | 13 00 00 00 00 00 00 00 |._.*....|........|
|00000070| 41 4e 53 49 00 00 00 00 | 10 e0 9b e5 02 ec 8e e3 |ANSI....|........|
|00000080| 44 41 54 41 e1 02 00 00 | 54 6f 70 0a 4e 65 78 74 |DATA....|Top.Next|
|00000090| 3a 20 3c 49 6e 74 72 6f | 64 75 63 74 69 6f 6e 3d |: <Intro|duction=|
|000000a0| 3e 49 6e 74 72 6f 64 75 | 63 74 69 3e 20 2a 20 0a |>Introdu|cti> * .|
|000000b0| 0a 23 57 72 61 70 20 6f | 6e 0a 7b 66 48 31 7d 47 |.#Wrap o|n.{fH1}G|
|000000c0| 4e 55 20 43 2b 2b 20 52 | 65 6e 6f 76 61 74 69 6f |NU C++ R|enovatio|
|000000d0| 6e 20 50 72 6f 6a 65 63 | 74 7b 66 7d 0a 0a 54 68 |n Projec|t{f}..Th|
|000000e0| 69 73 20 66 69 6c 65 20 | 64 65 73 63 72 69 62 65 |is file |describe|
|000000f0| 73 20 74 68 65 20 67 6f | 61 6c 73 20 6f 66 20 74 |s the go|als of t|
|00000100| 68 65 20 47 4e 55 20 43 | 2b 2b 20 52 65 6e 6f 76 |he GNU C|++ Renov|
|00000110| 61 74 69 6f 6e 20 50 72 | 6f 6a 65 63 74 2c 0a 61 |ation Pr|oject,.a|
|00000120| 6e 64 20 69 74 73 20 61 | 63 63 6f 6d 70 6c 69 73 |nd its a|ccomplis|
|00000130| 68 6d 65 6e 74 73 20 74 | 6f 20 64 61 74 65 20 28 |hments t|o date (|
|00000140| 61 73 20 6f 66 20 50 68 | 61 73 65 20 31 2e 33 29 |as of Ph|ase 1.3)|
|00000150| 2e 0a 0a 49 74 20 61 6c | 73 6f 20 64 69 73 63 75 |...It al|so discu|
|00000160| 73 73 65 73 20 74 68 65 | 20 72 65 6d 61 69 6e 69 |sses the| remaini|
|00000170| 6e 67 20 64 69 76 65 72 | 67 65 6e 63 65 73 20 66 |ng diver|gences f|
|00000180| 72 6f 6d 20 47 4e 55 20 | 43 2b 2b 2c 20 61 6e 64 |rom GNU |C++, and|
|00000190| 20 68 6f 77 20 74 68 65 | 0a 6e 61 6d 65 20 65 6e | how the|.name en|
|000001a0| 63 6f 64 69 6e 67 20 69 | 6e 20 47 4e 55 20 43 2b |coding i|n GNU C+|
|000001b0| 2b 20 64 69 66 66 65 72 | 73 20 66 72 6f 6d 20 74 |+ differ|s from t|
|000001c0| 68 65 20 73 61 6d 70 6c | 65 20 65 6e 63 6f 64 69 |he sampl|e encodi|
|000001d0| 6e 67 20 69 6e 0a 7b 66 | 43 69 74 65 7d 54 68 65 |ng in.{f|Cite}The|
|000001e0| 20 41 6e 6e 6f 74 61 74 | 65 64 20 43 2b 2b 20 52 | Annotat|ed C++ R|
|000001f0| 65 66 65 72 65 6e 63 65 | 20 4d 61 6e 75 61 6c 7b |eference| Manual{|
|00000200| 66 7d 2e 0a 0a 23 57 72 | 61 70 20 6f 66 66 0a 3c |f}...#Wr|ap off.<|
|00000210| 49 6e 74 72 6f 64 75 63 | 74 69 6f 6e 3d 3e 49 6e |Introduc|tion=>In|
|00000220| 74 72 6f 64 75 63 74 69 | 3e 3a 09 57 68 61 74 20 |troducti|>:.What |
|00000230| 69 73 20 74 68 65 20 47 | 4e 55 20 43 2b 2b 20 52 |is the G|NU C++ R|
|00000240| 65 6e 6f 76 61 74 69 6f | 6e 20 50 72 6f 6a 65 63 |enovatio|n Projec|
|00000250| 74 3f 0a 3c 43 68 61 6e | 67 65 73 3d 3e 43 68 61 |t?.<Chan|ges=>Cha|
|00000260| 6e 67 65 73 3e 3a 09 09 | 53 75 6d 6d 61 72 79 20 |nges>:..|Summary |
|00000270| 6f 66 20 63 68 61 6e 67 | 65 73 20 73 69 6e 63 65 |of chang|es since|
|00000280| 20 70 72 65 76 69 6f 75 | 73 20 47 4e 55 20 43 2b | previou|s GNU C+|
|00000290| 2b 20 72 65 6c 65 61 73 | 65 73 2e 0a 3c 50 6c 61 |+ releas|es..<Pla|
|000002a0| 6e 73 3d 3e 50 6c 61 6e | 73 3e 3a 09 09 50 6c 61 |ns=>Plan|s>:..Pla|
|000002b0| 6e 73 20 66 6f 72 20 52 | 65 6e 6f 2d 32 2e 0a 3c |ns for R|eno-2..<|
|000002c0| 54 65 6d 70 6c 61 74 65 | 73 3d 3e 54 65 6d 70 6c |Template|s=>Templ|
|000002d0| 61 74 65 73 3e 3a 09 09 | 54 68 65 20 74 65 6d 70 |ates>:..|The temp|
|000002e0| 6c 61 74 65 20 69 6d 70 | 6c 65 6d 65 6e 74 61 74 |late imp|lementat|
|000002f0| 69 6f 6e 2e 0a 3c 41 4e | 53 49 3d 3e 41 4e 53 49 |ion..<AN|SI=>ANSI|
|00000300| 3e 3a 09 09 47 4e 55 20 | 43 2b 2b 20 63 6f 6e 66 |>:..GNU |C++ conf|
|00000310| 6f 72 6d 61 6e 63 65 20 | 74 6f 20 41 4e 53 49 20 |ormance |to ANSI |
|00000320| 43 2b 2b 2e 0a 3c 45 6e | 63 6f 64 69 6e 67 3d 3e |C++..<En|coding=>|
|00000330| 45 6e 63 6f 64 69 6e 67 | 3e 3a 09 09 4e 61 6d 65 |Encoding|>:..Name|
|00000340| 20 65 6e 63 6f 64 69 6e | 67 20 69 6e 20 47 4e 55 | encodin|g in GNU|
|00000350| 20 43 2b 2b 2e 0a 23 57 | 72 61 70 20 6f 6e 0a 0a | C++..#W|rap on..|
|00000360| 0a 00 00 00 44 41 54 41 | ce 0d 00 00 41 4e 53 49 |....DATA|....ANSI|
|00000370| 0a 50 72 65 76 69 6f 75 | 73 3a 20 3c 54 65 6d 70 |.Previou|s: <Temp|
|00000380| 6c 61 74 65 20 64 65 62 | 75 67 67 69 6e 67 3d 3e |late deb|ugging=>|
|00000390| 54 65 6d 70 6c 61 74 65 | 64 65 3e 20 2a 20 4e 65 |Template|de> * Ne|
|000003a0| 78 74 3a 20 3c 45 6e 63 | 6f 64 69 6e 67 3d 3e 45 |xt: <Enc|oding=>E|
|000003b0| 6e 63 6f 64 69 6e 67 3e | 20 2a 20 55 70 3a 20 3c |ncoding>| * Up: <|
|000003c0| 54 6f 70 3d 3e 21 52 6f | 6f 74 3e 0a 0a 23 57 72 |Top=>!Ro|ot>..#Wr|
|000003d0| 61 70 20 6f 6e 0a 7b 66 | 48 32 7d 47 4e 55 20 43 |ap on.{f|H2}GNU C|
|000003e0| 2b 2b 20 43 6f 6e 66 6f | 72 6d 61 6e 63 65 20 74 |++ Confo|rmance t|
|000003f0| 6f 20 41 4e 53 49 20 43 | 2b 2b 7b 66 7d 0a 0a 54 |o ANSI C|++{f}..T|
|00000400| 68 65 73 65 20 63 68 61 | 6e 67 65 73 20 69 6e 20 |hese cha|nges in |
|00000410| 74 68 65 20 47 4e 55 20 | 43 2b 2b 20 63 6f 6d 70 |the GNU |C++ comp|
|00000420| 69 6c 65 72 20 77 65 72 | 65 20 6d 61 64 65 20 74 |iler wer|e made t|
|00000430| 6f 20 63 6f 6d 70 6c 79 | 20 6d 6f 72 65 0a 63 6c |o comply| more.cl|
|00000440| 6f 73 65 6c 79 20 77 69 | 74 68 20 74 68 65 20 41 |osely wi|th the A|
|00000450| 4e 53 49 20 62 61 73 65 | 20 64 6f 63 75 6d 65 6e |NSI base| documen|
|00000460| 74 2c 20 7b 66 43 69 74 | 65 7d 54 68 65 20 41 6e |t, {fCit|e}The An|
|00000470| 6e 6f 74 61 74 65 64 20 | 43 2b 2b 0a 52 65 66 65 |notated |C++.Refe|
|00000480| 72 65 6e 63 65 20 4d 61 | 6e 75 61 6c 7b 66 7d 20 |rence Ma|nual{f} |
|00000490| 28 74 68 65 20 41 52 4d | 29 2e 20 20 46 75 72 74 |(the ARM|). Furt|
|000004a0| 68 65 72 20 72 65 64 75 | 63 69 6e 67 20 74 68 65 |her redu|cing the|
|000004b0| 20 64 69 76 65 72 67 65 | 6e 63 65 73 20 66 72 6f | diverge|nces fro|
|000004c0| 6d 0a 41 4e 53 49 20 43 | 2b 2b 20 69 73 20 61 20 |m.ANSI C|++ is a |
|000004d0| 63 6f 6e 74 69 6e 75 65 | 64 20 67 6f 61 6c 20 6f |continue|d goal o|
|000004e0| 66 20 74 68 65 20 47 4e | 55 20 43 2b 2b 20 52 65 |f the GN|U C++ Re|
|000004f0| 6e 6f 76 61 74 69 6f 6e | 0a 50 72 6f 6a 65 63 74 |novation|.Project|
|00000500| 2e 0a 0a 53 65 63 74 69 | 6f 6e 20 33 2e 34 2c 20 |...Secti|on 3.4, |
|00000510| 53 74 61 72 74 20 61 6e | 64 20 54 65 72 6d 69 6e |Start an|d Termin|
|00000520| 61 74 69 6f 6e 2e 20 20 | 49 74 20 69 73 20 6e 6f |ation. |It is no|
|00000530| 77 20 69 6c 6c 65 67 61 | 6c 20 74 6f 20 74 61 6b |w illega|l to tak|
|00000540| 65 0a 74 68 65 20 61 64 | 64 72 65 73 73 20 6f 66 |e.the ad|dress of|
|00000550| 20 74 68 65 20 66 75 6e | 63 74 69 6f 6e 20 7b 66 | the fun|ction {f|
|00000560| 45 6d 70 68 61 73 69 73 | 7d 6d 61 69 6e 28 29 7b |Emphasis|}main(){|
|00000570| 66 7d 2e 0a 0a 53 65 63 | 74 69 6f 6e 20 34 2e 38 |f}...Sec|tion 4.8|
|00000580| 2c 20 50 6f 69 6e 74 65 | 72 73 20 74 6f 20 4d 65 |, Pointe|rs to Me|
|00000590| 6d 62 65 72 73 2e 20 20 | 54 68 65 20 63 6f 6d 70 |mbers. |The comp|
|000005a0| 69 6c 65 72 20 70 72 6f | 64 75 63 65 73 0a 61 6e |iler pro|duces.an|
|000005b0| 20 65 72 72 6f 72 20 66 | 6f 72 20 74 72 79 69 6e | error f|or tryin|
|000005c0| 67 20 74 6f 20 63 6f 6e | 76 65 72 74 20 62 65 74 |g to con|vert bet|
|000005d0| 77 65 65 6e 20 61 20 70 | 6f 69 6e 74 65 72 20 74 |ween a p|ointer t|
|000005e0| 6f 20 61 20 6d 65 6d 62 | 65 72 20 61 6e 64 20 74 |o a memb|er and t|
|000005f0| 68 65 20 74 79 70 65 0a | 7b 66 45 6d 70 68 61 73 |he type.|{fEmphas|
|00000600| 69 73 7d 76 6f 69 64 20 | 5c 2a 7b 66 7d 2e 0a 0a |is}void |\*{f}...|
|00000610| 53 65 63 74 69 6f 6e 20 | 35 2e 32 2e 35 2c 20 49 |Section |5.2.5, I|
|00000620| 6e 63 72 65 6d 65 6e 74 | 20 61 6e 64 20 44 65 63 |ncrement| and Dec|
|00000630| 72 65 6d 65 6e 74 2e 20 | 20 49 74 20 69 73 20 61 |rement. | It is a|
|00000640| 6e 20 65 72 72 6f 72 20 | 74 6f 20 75 73 65 0a 74 |n error |to use.t|
|00000650| 68 65 20 69 6e 63 72 65 | 6d 65 6e 74 20 61 6e 64 |he incre|ment and|
|00000660| 20 64 65 63 72 65 6d 65 | 6e 74 20 6f 70 65 72 61 | decreme|nt opera|
|00000670| 74 6f 72 73 20 6f 6e 20 | 61 6e 20 65 6e 75 6d 65 |tors on |an enume|
|00000680| 72 61 74 65 64 20 74 79 | 70 65 2e 0a 0a 53 65 63 |rated ty|pe...Sec|
|00000690| 74 69 6f 6e 20 35 2e 33 | 2e 32 2c 20 53 69 7a 65 |tion 5.3|.2, Size|
|000006a0| 6f 66 2e 20 20 44 6f 69 | 6e 67 20 7b 66 43 6f 64 |of. Doi|ng {fCod|
|000006b0| 65 7d 73 69 7a 65 6f 66 | 7b 66 7d 20 6f 6e 20 61 |e}sizeof|{f} on a|
|000006c0| 20 66 75 6e 63 74 69 6f | 6e 20 69 73 20 6e 6f 77 | functio|n is now|
|000006d0| 0a 61 6e 20 65 72 72 6f | 72 2e 0a 0a 53 65 63 74 |.an erro|r...Sect|
|000006e0| 69 6f 6e 20 35 2e 33 2e | 34 2c 20 44 65 6c 65 74 |ion 5.3.|4, Delet|
|000006f0| 65 2e 20 20 54 68 65 20 | 73 79 6e 74 61 78 20 6f |e. The |syntax o|
|00000700| 66 20 61 20 63 61 73 74 | 2d 65 78 70 72 65 73 73 |f a cast|-express|
|00000710| 69 6f 6e 20 69 73 0a 6e | 6f 77 20 6d 6f 72 65 20 |ion is.n|ow more |
|00000720| 73 74 72 69 63 74 6c 79 | 20 63 6f 6e 74 72 6f 6c |strictly| control|
|00000730| 6c 65 64 2e 0a 0a 53 65 | 63 74 69 6f 6e 20 37 2e |led...Se|ction 7.|
|00000740| 31 2e 31 2c 20 53 74 6f | 72 61 67 65 20 43 6c 61 |1.1, Sto|rage Cla|
|00000750| 73 73 20 53 70 65 63 69 | 66 69 65 72 73 2e 20 20 |ss Speci|fiers. |
|00000760| 55 73 69 6e 67 20 74 68 | 65 0a 7b 66 43 6f 64 65 |Using th|e.{fCode|
|00000770| 7d 73 74 61 74 69 63 7b | 66 7d 20 61 6e 64 20 7b |}static{|f} and {|
|00000780| 66 43 6f 64 65 7d 65 78 | 74 65 72 6e 7b 66 7d 20 |fCode}ex|tern{f} |
|00000790| 73 70 65 63 69 66 69 65 | 72 73 20 63 61 6e 20 6e |specifie|rs can n|
|000007a0| 6f 77 20 6f 6e 6c 79 20 | 62 65 20 61 70 70 6c 69 |ow only |be appli|
|000007b0| 65 64 20 74 6f 0a 6e 61 | 6d 65 73 20 6f 66 20 6f |ed to.na|mes of o|
|000007c0| 62 6a 65 63 74 73 2c 20 | 66 75 6e 63 74 69 6f 6e |bjects, |function|
|000007d0| 73 2c 20 61 6e 64 20 61 | 6e 6f 6e 79 6d 6f 75 73 |s, and a|nonymous|
|000007e0| 20 75 6e 69 6f 6e 73 2e | 0a 0a 53 65 63 74 69 6f | unions.|..Sectio|
|000007f0| 6e 20 37 2e 31 2e 31 2c | 20 53 74 6f 72 61 67 65 |n 7.1.1,| Storage|
|00000800| 20 43 6c 61 73 73 20 53 | 70 65 63 69 66 69 65 72 | Class S|pecifier|
|00000810| 73 2e 20 20 54 68 65 20 | 63 6f 6d 70 69 6c 65 72 |s. The |compiler|
|00000820| 20 6e 6f 20 6c 6f 6e 67 | 65 72 20 63 6f 6d 70 6c | no long|er compl|
|00000830| 61 69 6e 73 0a 61 62 6f | 75 74 20 74 61 6b 69 6e |ains.abo|ut takin|
|00000840| 67 20 74 68 65 20 61 64 | 64 72 65 73 73 20 6f 66 |g the ad|dress of|
|00000850| 20 61 20 76 61 72 69 61 | 62 6c 65 20 77 68 69 63 | a varia|ble whic|
|00000860| 68 20 68 61 73 20 62 65 | 65 6e 20 64 65 63 6c 61 |h has be|en decla|
|00000870| 72 65 64 20 74 6f 20 68 | 61 76 65 20 7b 66 43 6f |red to h|ave {fCo|
|00000880| 64 65 7d 72 65 67 69 73 | 74 65 72 7b 66 7d 0a 73 |de}regis|ter{f}.s|
|00000890| 74 6f 72 61 67 65 2e 0a | 0a 53 65 63 74 69 6f 6e |torage..|.Section|
|000008a0| 20 37 2e 31 2e 32 2c 20 | 46 75 6e 63 74 69 6f 6e | 7.1.2, |Function|
|000008b0| 20 53 70 65 63 69 66 69 | 65 72 73 2e 20 20 54 68 | Specifi|ers. Th|
|000008c0| 65 20 63 6f 6d 70 69 6c | 65 72 20 70 72 6f 64 75 |e compil|er produ|
|000008d0| 63 65 73 20 61 6e 0a 65 | 72 72 6f 72 20 77 68 65 |ces an.e|rror whe|
|000008e0| 6e 20 74 68 65 20 7b 66 | 43 6f 64 65 7d 69 6e 6c |n the {f|Code}inl|
|000008f0| 69 6e 65 7b 66 7d 20 6f | 72 20 7b 66 43 6f 64 65 |ine{f} o|r {fCode|
|00000900| 7d 76 69 72 74 75 61 6c | 7b 66 7d 20 73 70 65 63 |}virtual|{f} spec|
|00000910| 69 66 69 65 72 73 20 61 | 72 65 0a 75 73 65 64 20 |ifiers a|re.used |
|00000920| 6f 6e 20 61 6e 79 74 68 | 69 6e 67 20 6f 74 68 65 |on anyth|ing othe|
|00000930| 72 20 74 68 61 6e 20 61 | 20 66 75 6e 63 74 69 6f |r than a| functio|
|00000940| 6e 2e 0a 0a 53 65 63 74 | 69 6f 6e 20 38 2e 33 2c |n...Sect|ion 8.3,|
|00000950| 20 46 75 6e 63 74 69 6f | 6e 20 44 65 66 69 6e 69 | Functio|n Defini|
|00000960| 74 69 6f 6e 73 2e 20 20 | 49 74 20 69 73 20 6e 6f |tions. |It is no|
|00000970| 77 20 61 6e 20 65 72 72 | 6f 72 20 74 6f 20 73 68 |w an err|or to sh|
|00000980| 61 64 6f 77 0a 61 20 70 | 61 72 61 6d 65 74 65 72 |adow.a p|arameter|
|00000990| 20 6e 61 6d 65 20 77 69 | 74 68 20 61 20 6c 6f 63 | name wi|th a loc|
|000009a0| 61 6c 20 76 61 72 69 61 | 62 6c 65 3b 20 69 6e 20 |al varia|ble; in |
|000009b0| 74 68 65 20 70 61 73 74 | 2c 20 74 68 65 20 63 6f |the past|, the co|
|000009c0| 6d 70 69 6c 65 72 20 6f | 6e 6c 79 0a 67 61 76 65 |mpiler o|nly.gave|
|000009d0| 20 61 20 77 61 72 6e 69 | 6e 67 20 69 6e 20 73 75 | a warni|ng in su|
|000009e0| 63 68 20 61 20 73 69 74 | 75 61 74 69 6f 6e 2e 0a |ch a sit|uation..|
|000009f0| 0a 53 65 63 74 69 6f 6e | 20 38 2e 34 2e 31 2c 20 |.Section| 8.4.1, |
|00000a00| 41 67 67 72 65 67 61 74 | 65 73 2e 20 20 54 68 65 |Aggregat|es. The|
|00000a10| 20 72 75 6c 65 73 20 63 | 6f 6e 63 65 72 6e 69 6e | rules c|oncernin|
|00000a20| 67 20 64 65 63 6c 61 72 | 61 74 69 6f 6e 20 6f 66 |g declar|ation of|
|00000a30| 0a 61 6e 20 61 67 67 72 | 65 67 61 74 65 20 61 72 |.an aggr|egate ar|
|00000a40| 65 20 6e 6f 77 20 61 6c | 6c 20 63 68 65 63 6b 65 |e now al|l checke|
|00000a50| 64 20 69 6e 20 74 68 65 | 20 47 4e 55 20 43 2b 2b |d in the| GNU C++|
|00000a60| 20 63 6f 6d 70 69 6c 65 | 72 3b 20 74 68 65 79 0a | compile|r; they.|
|00000a70| 69 6e 63 6c 75 64 65 20 | 68 61 76 69 6e 67 20 6e |include |having n|
|00000a80| 6f 20 70 72 69 76 61 74 | 65 20 6f 72 20 70 72 6f |o privat|e or pro|
|00000a90| 74 65 63 74 65 64 20 6d | 65 6d 62 65 72 73 20 61 |tected m|embers a|
|00000aa0| 6e 64 20 6e 6f 20 62 61 | 73 65 20 63 6c 61 73 73 |nd no ba|se class|
|00000ab0| 65 73 2e 0a 0a 53 65 63 | 74 69 6f 6e 20 38 2e 34 |es...Sec|tion 8.4|
|00000ac0| 2e 33 2c 20 52 65 66 65 | 72 65 6e 63 65 73 2e 20 |.3, Refe|rences. |
|00000ad0| 20 44 65 63 6c 61 72 69 | 6e 67 20 61 6e 20 61 72 | Declari|ng an ar|
|00000ae0| 72 61 79 20 6f 66 20 72 | 65 66 65 72 65 6e 63 65 |ray of r|eference|
|00000af0| 73 20 69 73 0a 6e 6f 77 | 20 66 6f 72 62 69 64 64 |s is.now| forbidd|
|00000b00| 65 6e 2e 20 20 49 6e 69 | 74 69 61 6c 69 7a 69 6e |en. Ini|tializin|
|00000b10| 67 20 61 20 72 65 66 65 | 72 65 6e 63 65 20 77 69 |g a refe|rence wi|
|00000b20| 74 68 20 61 6e 20 69 6e | 69 74 69 61 6c 69 7a 65 |th an in|itialize|
|00000b30| 72 20 6c 69 73 74 20 69 | 73 0a 61 6c 73 6f 20 63 |r list i|s.also c|
|00000b40| 6f 6e 73 69 64 65 72 65 | 64 20 61 6e 20 65 72 72 |onsidere|d an err|
|00000b50| 6f 72 2e 0a 0a 53 65 63 | 74 69 6f 6e 20 39 2e 35 |or...Sec|tion 9.5|
|00000b60| 2c 20 55 6e 69 6f 6e 73 | 2e 20 20 47 6c 6f 62 61 |, Unions|. Globa|
|00000b70| 6c 20 61 6e 6f 6e 79 6d | 6f 75 73 20 75 6e 69 6f |l anonym|ous unio|
|00000b80| 6e 73 20 6d 75 73 74 20 | 62 65 20 64 65 63 6c 61 |ns must |be decla|
|00000b90| 72 65 64 0a 7b 66 43 6f | 64 65 7d 73 74 61 74 69 |red.{fCo|de}stati|
|00000ba0| 63 7b 66 7d 2e 0a 0a 53 | 65 63 74 69 6f 6e 20 31 |c{f}...S|ection 1|
|00000bb0| 31 2e 34 2c 20 46 72 69 | 65 6e 64 73 2e 20 20 44 |1.4, Fri|ends. D|
|00000bc0| 65 63 6c 61 72 69 6e 67 | 20 61 20 6d 65 6d 62 65 |eclaring| a membe|
|00000bd0| 72 20 74 6f 20 62 65 20 | 61 20 66 72 69 65 6e 64 |r to be |a friend|
|00000be0| 20 6f 66 20 61 0a 74 79 | 70 65 20 74 68 61 74 20 | of a.ty|pe that |
|00000bf0| 68 61 73 20 6e 6f 74 20 | 79 65 74 20 62 65 65 6e |has not |yet been|
|00000c00| 20 64 65 66 69 6e 65 64 | 20 69 73 20 61 6e 20 65 | defined| is an e|
|00000c10| 72 72 6f 72 2e 0a 0a 53 | 65 63 74 69 6f 6e 20 31 |rror...S|ection 1|
|00000c20| 32 2e 31 2c 20 43 6f 6e | 73 74 72 75 63 74 6f 72 |2.1, Con|structor|
|00000c30| 73 2e 20 20 54 68 65 20 | 63 6f 6d 70 69 6c 65 72 |s. The |compiler|
|00000c40| 20 67 65 6e 65 72 61 74 | 65 73 20 61 0a 64 65 66 | generat|es a.def|
|00000c50| 61 75 6c 74 20 63 6f 70 | 79 20 63 6f 6e 73 74 72 |ault cop|y constr|
|00000c60| 75 63 74 6f 72 20 66 6f | 72 20 61 20 63 6c 61 73 |uctor fo|r a clas|
|00000c70| 73 20 69 66 20 6e 6f 20 | 63 6f 6e 73 74 72 75 63 |s if no |construc|
|00000c80| 74 6f 72 20 68 61 73 20 | 62 65 65 6e 20 64 65 63 |tor has |been dec|
|00000c90| 6c 61 72 65 64 2e 0a 0a | 0a 53 65 63 74 69 6f 6e |lared...|.Section|
|00000ca0| 20 31 32 2e 36 2e 32 2c | 20 53 70 65 63 69 61 6c | 12.6.2,| Special|
|00000cb0| 20 4d 65 6d 62 65 72 20 | 46 75 6e 63 74 69 6f 6e | Member |Function|
|00000cc0| 73 2e 20 20 57 68 65 6e | 20 75 73 69 6e 67 20 61 |s. When| using a|
|00000cd0| 0a 6d 65 6d 2d 69 6e 69 | 74 69 61 6c 69 7a 65 72 |.mem-ini|tializer|
|00000ce0| 20 6c 69 73 74 2c 20 74 | 68 65 20 63 6f 6d 70 69 | list, t|he compi|
|00000cf0| 6c 65 72 20 77 69 6c 6c | 20 6e 6f 77 20 69 6e 69 |ler will| now ini|
|00000d00| 74 69 61 6c 69 7a 65 20 | 63 6c 61 73 73 20 6d 65 |tialize |class me|
|00000d10| 6d 62 65 72 73 0a 69 6e | 20 64 65 63 6c 61 72 61 |mbers.in| declara|
|00000d20| 74 69 6f 6e 20 6f 72 64 | 65 72 2c 20 6e 6f 74 20 |tion ord|er, not |
|00000d30| 69 6e 20 74 68 65 20 6f | 72 64 65 72 20 69 6e 20 |in the o|rder in |
|00000d40| 77 68 69 63 68 20 79 6f | 75 20 73 70 65 63 69 66 |which yo|u specif|
|00000d50| 79 20 74 68 65 6d 2e 0a | 41 6c 73 6f 2c 20 74 68 |y them..|Also, th|
|00000d60| 65 20 63 6f 6d 70 69 6c | 65 72 20 65 6e 66 6f 72 |e compil|er enfor|
|00000d70| 63 65 73 20 74 68 65 20 | 72 75 6c 65 20 74 68 61 |ces the |rule tha|
|00000d80| 74 20 6e 6f 6e 2d 73 74 | 61 74 69 63 20 7b 66 43 |t non-st|atic {fC|
|00000d90| 6f 64 65 7d 63 6f 6e 73 | 74 7b 66 7d 0a 61 6e 64 |ode}cons|t{f}.and|
|00000da0| 20 72 65 66 65 72 65 6e | 63 65 20 6d 65 6d 62 65 | referen|ce membe|
|00000db0| 72 73 20 6d 75 73 74 20 | 62 65 20 69 6e 69 74 69 |rs must |be initi|
|00000dc0| 61 6c 69 7a 65 64 20 77 | 69 74 68 20 61 20 6d 65 |alized w|ith a me|
|00000dd0| 6d 2d 69 6e 69 74 69 61 | 6c 69 7a 65 72 0a 6c 69 |m-initia|lizer.li|
|00000de0| 73 74 20 77 68 65 6e 20 | 74 68 65 69 72 20 63 6c |st when |their cl|
|00000df0| 61 73 73 20 64 6f 65 73 | 20 6e 6f 74 20 68 61 76 |ass does| not hav|
|00000e00| 65 20 61 20 63 6f 6e 73 | 74 72 75 63 74 6f 72 2e |e a cons|tructor.|
|00000e10| 0a 0a 53 65 63 74 69 6f | 6e 20 31 32 2e 38 2c 20 |..Sectio|n 12.8, |
|00000e20| 43 6f 70 79 69 6e 67 20 | 43 6c 61 73 73 20 4f 62 |Copying |Class Ob|
|00000e30| 6a 65 63 74 73 2e 20 20 | 54 68 65 20 63 6f 6d 70 |jects. |The comp|
|00000e40| 69 6c 65 72 20 67 65 6e | 65 72 61 74 65 73 0a 64 |iler gen|erates.d|
|00000e50| 65 66 61 75 6c 74 20 63 | 6f 70 79 20 63 6f 6e 73 |efault c|opy cons|
|00000e60| 74 72 75 63 74 6f 72 73 | 20 63 6f 72 72 65 63 74 |tructors| correct|
|00000e70| 6c 79 2c 20 61 6e 64 20 | 73 75 70 70 6c 69 65 73 |ly, and |supplies|
|00000e80| 20 64 65 66 61 75 6c 74 | 20 61 73 73 69 67 6e 6d | default| assignm|
|00000e90| 65 6e 74 0a 6f 70 65 72 | 61 74 6f 72 73 20 63 6f |ent.oper|ators co|
|00000ea0| 6d 70 61 74 69 62 6c 65 | 20 77 69 74 68 20 75 73 |mpatible| with us|
|00000eb0| 65 72 2d 64 65 66 69 6e | 65 64 20 6f 6e 65 73 2e |er-defin|ed ones.|
|00000ec0| 0a 0a 53 65 63 74 69 6f | 6e 20 31 33 2e 34 2c 20 |..Sectio|n 13.4, |
|00000ed0| 4f 76 65 72 6c 6f 61 64 | 65 64 20 4f 70 65 72 61 |Overload|ed Opera|
|00000ee0| 74 6f 72 73 2e 20 20 41 | 6e 20 6f 76 65 72 6c 6f |tors. A|n overlo|
|00000ef0| 61 64 65 64 20 6f 70 65 | 72 61 74 6f 72 20 6d 61 |aded ope|rator ma|
|00000f00| 79 0a 6e 6f 20 6c 6f 6e | 67 65 72 20 68 61 76 65 |y.no lon|ger have|
|00000f10| 20 64 65 66 61 75 6c 74 | 20 61 72 67 75 6d 65 6e | default| argumen|
|00000f20| 74 73 2e 0a 0a 53 65 63 | 74 69 6f 6e 20 31 33 2e |ts...Sec|tion 13.|
|00000f30| 34 2e 34 2c 20 46 75 6e | 63 74 69 6f 6e 20 43 61 |4.4, Fun|ction Ca|
|00000f40| 6c 6c 2e 20 20 41 6e 20 | 6f 76 65 72 6c 6f 61 64 |ll. An |overload|
|00000f50| 65 64 20 7b 66 45 6d 70 | 68 61 73 69 73 7d 6f 70 |ed {fEmp|hasis}op|
|00000f60| 65 72 61 74 6f 72 20 28 | 29 7b 66 7d 0a 6d 75 73 |erator (|){f}.mus|
|00000f70| 74 20 62 65 20 61 20 6e | 6f 6e 2d 73 74 61 74 69 |t be a n|on-stati|
|00000f80| 63 20 6d 65 6d 62 65 72 | 20 66 75 6e 63 74 69 6f |c member| functio|
|00000f90| 6e 2e 0a 0a 53 65 63 74 | 69 6f 6e 20 31 33 2e 34 |n...Sect|ion 13.4|
|00000fa0| 2e 35 2c 20 53 75 62 73 | 63 72 69 70 74 69 6e 67 |.5, Subs|cripting|
|00000fb0| 2e 20 20 41 6e 20 6f 76 | 65 72 6c 6f 61 64 65 64 |. An ov|erloaded|
|00000fc0| 20 7b 66 45 6d 70 68 61 | 73 69 73 7d 6f 70 65 72 | {fEmpha|sis}oper|
|00000fd0| 61 74 6f 72 20 5b 5d 7b | 66 7d 0a 6d 75 73 74 20 |ator []{|f}.must |
|00000fe0| 62 65 20 61 20 6e 6f 6e | 2d 73 74 61 74 69 63 20 |be a non|-static |
|00000ff0| 6d 65 6d 62 65 72 20 66 | 75 6e 63 74 69 6f 6e 2e |member f|unction.|
|00001000| 0a 0a 53 65 63 74 69 6f | 6e 20 31 33 2e 34 2e 36 |..Sectio|n 13.4.6|
|00001010| 2c 20 43 6c 61 73 73 20 | 4d 65 6d 62 65 72 20 41 |, Class |Member A|
|00001020| 63 63 65 73 73 2e 20 20 | 41 6e 20 6f 76 65 72 6c |ccess. |An overl|
|00001030| 6f 61 64 65 64 20 7b 66 | 45 6d 70 68 61 73 69 73 |oaded {f|Emphasis|
|00001040| 7d 6f 70 65 72 61 74 6f | 72 20 2d 5c 3e 7b 66 7d |}operato|r -\>{f}|
|00001050| 0a 6d 75 73 74 20 62 65 | 20 61 20 6e 6f 6e 2d 73 |.must be| a non-s|
|00001060| 74 61 74 69 63 20 6d 65 | 6d 62 65 72 20 66 75 6e |tatic me|mber fun|
|00001070| 63 74 69 6f 6e 2e 0a 0a | 53 65 63 74 69 6f 6e 20 |ction...|Section |
|00001080| 31 33 2e 34 2e 37 2c 20 | 49 6e 63 72 65 6d 65 6e |13.4.7, |Incremen|
|00001090| 74 20 61 6e 64 20 44 65 | 63 72 65 6d 65 6e 74 2e |t and De|crement.|
|000010a0| 20 20 54 68 65 20 63 6f | 6d 70 69 6c 65 72 20 77 | The co|mpiler w|
|000010b0| 69 6c 6c 20 6e 6f 77 0a | 6d 61 6b 65 20 73 75 72 |ill now.|make sur|
|000010c0| 65 20 61 20 70 6f 73 74 | 66 69 78 20 7b 66 45 6d |e a post|fix {fEm|
|000010d0| 70 68 61 73 69 73 7d 6f | 70 65 72 61 74 6f 72 20 |phasis}o|perator |
|000010e0| 2b 2b 7b 66 7d 20 6f 72 | 20 7b 66 45 6d 70 68 61 |++{f} or| {fEmpha|
|000010f0| 73 69 73 7d 6f 70 65 72 | 61 74 6f 72 20 2d 2d 7b |sis}oper|ator --{|
|00001100| 66 7d 20 68 61 73 20 61 | 6e 0a 7b 66 43 6f 64 65 |f} has a|n.{fCode|
|00001110| 7d 69 6e 74 7b 66 7d 20 | 61 73 20 69 74 73 20 73 |}int{f} |as its s|
|00001120| 65 63 6f 6e 64 20 61 72 | 67 75 6d 65 6e 74 2e 0a |econd ar|gument..|
|00001130| 0a 0a 00 00 46 52 45 45 | 60 01 00 00 2c 00 00 00 |....FREE|`...,...|
|00001140| 80 00 00 00 46 ff ff ff | c5 50 e5 2a e1 02 00 00 |....F...|.P.*....|
|00001150| 33 00 00 00 00 00 00 00 | 21 52 6f 6f 74 00 00 00 |3.......|!Root...|
|00001160| 64 03 00 00 46 ff ff ff | b8 5f e5 2a ce 0d 00 00 |d...F...|._.*....|
|00001170| 33 00 00 00 00 00 00 00 | 41 4e 53 49 00 00 00 00 |3.......|ANSI....|
|00001180| 94 12 00 00 46 ff ff ff | 45 52 e5 2a cc 02 00 00 |....F...|ER.*....|
|00001190| 13 00 00 00 00 00 00 00 | 43 68 61 6e 67 65 73 00 |........|Changes.|
|000011a0| 60 15 00 00 46 ff ff ff | 44 5e e5 2a 72 07 00 00 |`...F...|D^.*r...|
|000011b0| 13 00 00 00 00 00 00 00 | 43 6c 61 73 73 74 65 6d |........|Classtem|
|000011c0| 70 6c 00 00 d4 1c 00 00 | 46 ff ff ff c6 61 e5 2a |pl......|F....a.*|
|000011d0| 48 12 00 00 13 00 00 00 | 00 00 00 00 45 6e 63 6f |H.......|....Enco|
|000011e0| 64 69 6e 67 00 00 00 00 | 1c 2f 00 00 46 ff ff ff |ding....|./..F...|
|000011f0| 5d 58 e5 2a 8f 1d 00 00 | 13 00 00 00 00 00 00 00 |]X.*....|........|
|00001200| 45 6e 68 61 6e 63 65 6d | 65 6e 00 00 ac 4c 00 00 |Enhancem|en...L..|
|00001210| 46 ff ff ff 17 5d e5 2a | ed 09 00 00 13 00 00 00 |F....].*|........|
|00001220| 00 00 00 00 46 75 6e 63 | 74 69 6f 6e 74 65 00 00 |....Func|tionte..|
|00001230| 9c 56 00 00 46 ff ff ff | 6f 51 e5 2a e5 08 00 00 |.V..F...|oQ.*....|
|00001240| 13 00 00 00 00 00 00 00 | 49 6e 74 72 6f 64 75 63 |........|Introduc|
|00001250| 74 69 00 00 84 5f 00 00 | 46 ff ff ff 5e 54 e5 2a |ti..._..|F...^T.*|
|00001260| d2 07 00 00 13 00 00 00 | 00 00 00 00 4d 61 6a 6f |........|....Majo|
|00001270| 72 63 68 61 6e 67 00 00 | ff ff ff ff ff ff ff ff |rchang..|........|
|00001280| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00001290| ff ff ff ff 44 41 54 41 | cc 02 00 00 43 68 61 6e |....DATA|....Chan|
|000012a0| 67 65 73 0a 50 72 65 76 | 69 6f 75 73 3a 20 3c 49 |ges.Prev|ious: <I|
|000012b0| 6e 74 72 6f 64 75 63 74 | 69 6f 6e 3d 3e 49 6e 74 |ntroduct|ion=>Int|
|000012c0| 72 6f 64 75 63 74 69 3e | 20 2a 20 4e 65 78 74 3a |roducti>| * Next:|
|000012d0| 20 3c 53 75 6d 6d 61 72 | 79 20 6f 66 20 50 68 61 | <Summar|y of Pha|
|000012e0| 73 65 20 31 2e 33 3d 3e | 53 75 6d 6d 61 72 79 6f |se 1.3=>|Summaryo|
|000012f0| 66 50 3e 20 2a 20 55 70 | 3a 20 3c 54 6f 70 3d 3e |fP> * Up|: <Top=>|
|00001300| 21 52 6f 6f 74 3e 0a 0a | 23 57 72 61 70 20 6f 6e |!Root>..|#Wrap on|
|00001310| 0a 7b 66 48 32 7d 43 68 | 61 6e 67 65 73 20 69 6e |.{fH2}Ch|anges in|
|00001320| 20 42 65 68 61 76 69 6f | 72 20 69 6e 20 47 4e 55 | Behavio|r in GNU|
|00001330| 20 43 2b 2b 7b 66 7d 0a | 0a 54 68 65 20 47 4e 55 | C++{f}.|.The GNU|
|00001340| 20 43 2b 2b 20 63 6f 6d | 70 69 6c 65 72 20 63 6f | C++ com|piler co|
|00001350| 6e 74 69 6e 75 65 73 20 | 74 6f 20 69 6d 70 72 6f |ntinues |to impro|
|00001360| 76 65 20 61 6e 64 20 63 | 68 61 6e 67 65 2e 20 20 |ve and c|hange. |
|00001370| 41 20 6d 61 6a 6f 72 20 | 67 6f 61 6c 0a 6f 66 20 |A major |goal.of |
|00001380| 6f 75 72 20 77 6f 72 6b | 20 68 61 73 20 62 65 65 |our work| has bee|
|00001390| 6e 20 74 6f 20 63 6f 6e | 74 69 6e 75 65 20 74 6f |n to con|tinue to|
|000013a0| 20 62 72 69 6e 67 20 74 | 68 65 20 63 6f 6d 70 69 | bring t|he compi|
|000013b0| 6c 65 72 20 69 6e 74 6f | 20 63 6f 6d 70 6c 69 61 |ler into| complia|
|000013c0| 6e 63 65 0a 77 69 74 68 | 20 74 68 65 20 64 72 61 |nce.with| the dra|
|000013d0| 66 74 20 41 4e 53 49 20 | 43 2b 2b 20 73 74 61 6e |ft ANSI |C++ stan|
|000013e0| 64 61 72 64 2c 20 61 6e | 64 20 77 69 74 68 20 7b |dard, an|d with {|
|000013f0| 66 43 69 74 65 7d 54 68 | 65 20 41 6e 6e 6f 74 61 |fCite}Th|e Annota|
|00001400| 74 65 64 20 43 2b 2b 0a | 52 65 66 65 72 65 6e 63 |ted C++.|Referenc|
|00001410| 65 20 4d 61 6e 75 61 6c | 7b 66 7d 20 28 74 68 65 |e Manual|{f} (the|
|00001420| 20 41 52 4d 29 2e 20 20 | 54 68 69 73 20 73 65 63 | ARM). |This sec|
|00001430| 74 69 6f 6e 20 6f 75 74 | 6c 69 6e 65 73 20 6d 6f |tion out|lines mo|
|00001440| 73 74 20 6f 66 20 74 68 | 65 0a 75 73 65 72 2d 6e |st of th|e.user-n|
|00001450| 6f 74 69 63 65 61 62 6c | 65 20 63 68 61 6e 67 65 |oticeabl|e change|
|00001460| 73 20 74 68 61 74 20 6d | 69 67 68 74 20 62 65 20 |s that m|ight be |
|00001470| 65 6e 63 6f 75 6e 74 65 | 72 65 64 20 64 75 72 69 |encounte|red duri|
|00001480| 6e 67 20 74 68 65 20 6e | 6f 72 6d 61 6c 0a 63 6f |ng the n|ormal.co|
|00001490| 75 72 73 65 20 6f 66 20 | 75 73 65 2e 0a 0a 23 57 |urse of |use...#W|
|000014a0| 72 61 70 20 6f 66 66 0a | 3c 53 75 6d 6d 61 72 79 |rap off.|<Summary|
|000014b0| 20 6f 66 20 50 68 61 73 | 65 20 31 2e 33 3d 3e 53 | of Phas|e 1.3=>S|
|000014c0| 75 6d 6d 61 72 79 6f 66 | 50 3e 3a 0a 3c 4d 61 6a |ummaryof|P>:.<Maj|
|000014d0| 6f 72 20 63 68 61 6e 67 | 65 73 3d 3e 4d 61 6a 6f |or chang|es=>Majo|
|000014e0| 72 63 68 61 6e 67 3e 3a | 0a 3c 4e 65 77 20 66 65 |rchang>:|.<New fe|
|000014f0| 61 74 75 72 65 73 3d 3e | 4e 65 77 66 65 61 74 75 |atures=>|Newfeatu|
|00001500| 72 65 3e 3a 0a 3c 45 6e | 68 61 6e 63 65 6d 65 6e |re>:.<En|hancemen|
|00001510| 74 73 20 61 6e 64 20 62 | 75 67 20 66 69 78 65 73 |ts and b|ug fixes|
|00001520| 3d 3e 45 6e 68 61 6e 63 | 65 6d 65 6e 3e 3a 0a 3c |=>Enhanc|emen>:.<|
|00001530| 50 72 6f 62 6c 65 6d 73 | 20 77 69 74 68 20 64 65 |Problems| with de|
|00001540| 62 75 67 67 69 6e 67 3d | 3e 50 72 6f 62 6c 65 6d |bugging=|>Problem|
|00001550| 73 77 69 3e 3a 0a 23 57 | 72 61 70 20 6f 6e 0a 0a |swi>:.#W|rap on..|
|00001560| 44 41 54 41 72 07 00 00 | 43 6c 61 73 73 20 74 65 |DATAr...|Class te|
|00001570| 6d 70 6c 61 74 65 73 0a | 50 72 65 76 69 6f 75 73 |mplates.|Previous|
|00001580| 3a 20 3c 46 75 6e 63 74 | 69 6f 6e 20 74 65 6d 70 |: <Funct|ion temp|
|00001590| 6c 61 74 65 73 3d 3e 46 | 75 6e 63 74 69 6f 6e 74 |lates=>F|unctiont|
|000015a0| 65 3e 20 2a 20 4e 65 78 | 74 3a 20 3c 54 65 6d 70 |e> * Nex|t: <Temp|
|000015b0| 6c 61 74 65 20 64 65 62 | 75 67 67 69 6e 67 3d 3e |late deb|ugging=>|
|000015c0| 54 65 6d 70 6c 61 74 65 | 64 65 3e 20 2a 20 55 70 |Template|de> * Up|
|000015d0| 3a 20 3c 54 65 6d 70 6c | 61 74 65 73 3d 3e 54 65 |: <Templ|ates=>Te|
|000015e0| 6d 70 6c 61 74 65 73 3e | 0a 0a 23 57 72 61 70 20 |mplates>|..#Wrap |
|000015f0| 6f 6e 0a 7b 66 48 33 7d | 4c 69 6d 69 74 61 74 69 |on.{fH3}|Limitati|
|00001600| 6f 6e 73 20 66 6f 72 20 | 63 6c 61 73 73 20 74 65 |ons for |class te|
|00001610| 6d 70 6c 61 74 65 73 7b | 66 7d 0a 0a 0a 23 49 6e |mplates{|f}...#In|
|00001620| 64 65 6e 74 20 2b 34 0a | 0a 55 6e 66 6f 72 74 75 |dent +4.|.Unfortu|
|00001630| 6e 61 74 65 6c 79 2c 20 | 69 6e 64 69 76 69 64 75 |nately, |individu|
|00001640| 61 6c 20 69 6e 69 74 69 | 61 6c 69 7a 61 74 69 6f |al initi|alizatio|
|00001650| 6e 73 20 6f 66 20 74 68 | 69 73 20 73 6f 72 74 20 |ns of th|is sort |
|00001660| 61 72 65 20 6c 69 6b 65 | 6c 79 20 74 6f 20 62 65 |are like|ly to be|
|00001670| 0a 63 6f 6e 73 69 64 65 | 72 65 64 20 65 72 72 6f |.conside|red erro|
|00001680| 72 73 20 65 76 65 6e 74 | 75 61 6c 6c 79 3b 20 73 |rs event|ually; s|
|00001690| 69 6e 63 65 20 74 68 65 | 79 27 72 65 20 6e 65 65 |ince the|y're nee|
|000016a0| 64 65 64 20 6e 6f 77 2c | 20 79 6f 75 20 6d 69 67 |ded now,| you mig|
|000016b0| 68 74 20 77 61 6e 74 20 | 74 6f 0a 66 6c 61 67 20 |ht want |to.flag |
|000016c0| 70 6c 61 63 65 73 20 77 | 68 65 72 65 20 79 6f 75 |places w|here you|
|000016d0| 20 75 73 65 20 74 68 65 | 6d 20 77 69 74 68 20 63 | use the|m with c|
|000016e0| 6f 6d 6d 65 6e 74 73 20 | 74 6f 20 6d 61 72 6b 20 |omments |to mark |
|000016f0| 74 68 65 20 6e 65 65 64 | 20 66 6f 72 20 61 0a 66 |the need| for a.f|
|00001700| 75 74 75 72 65 20 74 72 | 61 6e 73 69 74 69 6f 6e |uture tr|ansition|
|00001710| 2e 0a 0a 0a 20 8f 20 4d | 65 6d 62 65 72 20 66 75 |.... . M|ember fu|
|00001720| 6e 63 74 69 6f 6e 73 20 | 69 6e 20 74 65 6d 70 6c |nctions |in templ|
|00001730| 61 74 65 20 63 6c 61 73 | 73 65 73 20 6d 61 79 20 |ate clas|ses may |
|00001740| 6e 6f 74 20 68 61 76 65 | 20 72 65 73 75 6c 74 73 |not have| results|
|00001750| 20 6f 66 20 6e 65 73 74 | 65 64 0a 74 79 70 65 3b | of nest|ed.type;|
|00001760| 20 47 4e 55 20 43 2b 2b | 20 73 69 67 6e 61 6c 73 | GNU C++| signals|
|00001770| 20 61 20 73 79 6e 74 61 | 78 20 65 72 72 6f 72 20 | a synta|x error |
|00001780| 6f 6e 20 74 68 65 20 61 | 74 74 65 6d 70 74 2e 20 |on the a|ttempt. |
|00001790| 20 54 68 65 20 66 6f 6c | 6c 6f 77 69 6e 67 0a 65 | The fol|lowing.e|
|000017a0| 78 61 6d 70 6c 65 20 69 | 6c 6c 75 73 74 72 61 74 |xample i|llustrat|
|000017b0| 65 73 20 74 68 69 73 20 | 70 72 6f 62 6c 65 6d 20 |es this |problem |
|000017c0| 77 69 74 68 20 61 6e 20 | 7b 66 43 6f 64 65 7d 65 |with an |{fCode}e|
|000017d0| 6e 75 6d 7b 66 7d 20 74 | 79 70 65 20 7b 66 43 6f |num{f} t|ype {fCo|
|000017e0| 64 65 7d 61 6c 70 68 7b | 66 7d 3a 0a 0a 23 57 72 |de}alph{|f}:..#Wr|
|000017f0| 61 70 20 6f 66 66 0a 23 | 66 43 6f 64 65 0a 74 65 |ap off.#|fCode.te|
|00001800| 6d 70 6c 61 74 65 20 5c | 3c 63 6c 61 73 73 20 54 |mplate \|<class T|
|00001810| 5c 3e 20 63 6c 61 73 73 | 20 6c 69 73 74 20 5c 7b |\> class| list \{|
|00001820| 0a 20 20 8c 0a 20 20 65 | 6e 75 6d 20 61 6c 70 68 |. .. e|num alph|
|00001830| 20 5c 7b 61 2c 62 2c 63 | 5c 7d 3b 0a 20 20 61 6c | \{a,b,c|\};. al|
|00001840| 70 68 20 62 61 72 28 29 | 3b 0a 20 20 8c 0a 5c 7d |ph bar()|;. ..\}|
|00001850| 3b 0a 0a 74 65 6d 70 6c | 61 74 65 20 5c 3c 63 6c |;..templ|ate \<cl|
|00001860| 61 73 73 20 54 5c 3e 0a | 6c 69 73 74 5c 3c 69 6e |ass T\>.|list\<in|
|00001870| 74 5c 3e 3a 3a 61 6c 70 | 68 20 6c 69 73 74 5c 3c |t\>::alp|h list\<|
|00001880| 69 6e 74 5c 3e 3a 3a 62 | 61 72 28 29 20 20 5c 2f |int\>::b|ar() \/|
|00001890| 5c 2f 20 53 79 6e 74 61 | 78 20 65 72 72 6f 72 20 |\/ Synta|x error |
|000018a0| 68 65 72 65 0a 5c 7b 0a | 8c 0a 5c 7d 0a 23 66 0a |here.\{.|..\}.#f.|
|000018b0| 23 57 72 61 70 20 6f 6e | 0a 0a 0a 20 8f 20 41 20 |#Wrap on|... . A |
|000018c0| 70 61 72 73 69 6e 67 20 | 62 75 67 20 6d 61 6b 65 |parsing |bug make|
|000018d0| 73 20 69 74 20 64 69 66 | 66 69 63 75 6c 74 20 74 |s it dif|ficult t|
|000018e0| 6f 20 75 73 65 20 70 72 | 65 70 72 6f 63 65 73 73 |o use pr|eprocess|
|000018f0| 6f 72 20 63 6f 6e 64 69 | 74 69 6f 6e 61 6c 73 20 |or condi|tionals |
|00001900| 77 69 74 68 69 6e 0a 74 | 65 6d 70 6c 61 74 65 73 |within.t|emplates|
|00001910| 2e 20 20 46 6f 72 20 65 | 78 61 6d 70 6c 65 2c 20 |. For e|xample, |
|00001920| 69 6e 20 74 68 69 73 20 | 63 6f 64 65 3a 0a 0a 23 |in this |code:..#|
|00001930| 57 72 61 70 20 6f 66 66 | 0a 23 66 43 6f 64 65 0a |Wrap off|.#fCode.|
|00001940| 74 65 6d 70 6c 61 74 65 | 20 5c 3c 63 6c 61 73 73 |template| \<class|
|00001950| 20 54 5c 3e 0a 63 6c 61 | 73 73 20 6c 69 73 74 20 | T\>.cla|ss list |
|00001960| 5c 7b 0a 20 20 8c 0a 5c | 23 69 66 64 65 66 20 53 |\{. ..\|#ifdef S|
|00001970| 59 53 57 52 4f 4e 47 0a | 20 20 54 20 78 3b 0a 5c |YSWRONG.| T x;.\|
|00001980| 23 65 6e 64 69 66 0a 20 | 20 8c 0a 5c 7d 0a 23 66 |#endif. | ..\}.#f|
|00001990| 0a 23 57 72 61 70 20 6f | 6e 0a 0a 54 68 65 20 70 |.#Wrap o|n..The p|
|000019a0| 72 65 70 72 6f 63 65 73 | 73 6f 72 20 6f 75 74 70 |reproces|sor outp|
|000019b0| 75 74 20 6c 65 61 76 65 | 73 20 73 6f 75 72 63 65 |ut leave|s source|
|000019c0| 66 69 6c 65 20 6c 69 6e | 65 20 6e 75 6d 62 65 72 |file lin|e number|
|000019d0| 20 69 6e 66 6f 72 6d 61 | 74 69 6f 6e 20 28 6c 69 | informa|tion (li|
|000019e0| 6e 65 73 0a 6c 69 6b 65 | 20 7b 66 45 6d 70 68 61 |nes.like| {fEmpha|
|000019f0| 73 69 73 7d 5c 23 20 36 | 20 22 66 6f 6f 2e 63 63 |sis}\# 6| "foo.cc|
|00001a00| 22 7b 66 7d 20 77 68 65 | 6e 20 69 74 20 65 78 70 |"{f} whe|n it exp|
|00001a10| 61 6e 64 73 20 74 68 65 | 20 7b 66 43 6f 64 65 7d |ands the| {fCode}|
|00001a20| 5c 23 69 66 64 65 66 7b | 66 7d 20 62 6c 6f 63 6b |\#ifdef{|f} block|
|00001a30| 2e 20 20 54 68 65 73 65 | 0a 6c 69 6e 65 73 20 63 |. These|.lines c|
|00001a40| 6f 6e 66 75 73 65 20 74 | 68 65 20 63 6f 6d 70 69 |onfuse t|he compi|
|00001a50| 6c 65 72 20 77 68 69 6c | 65 20 70 61 72 73 69 6e |ler whil|e parsin|
|00001a60| 67 20 74 65 6d 70 6c 61 | 74 65 73 2c 20 67 69 76 |g templa|tes, giv|
|00001a70| 69 6e 67 20 61 20 73 79 | 6e 74 61 78 0a 65 72 72 |ing a sy|ntax.err|
|00001a80| 6f 72 2e 0a 0a 49 66 20 | 79 6f 75 20 63 61 6e 6e |or...If |you cann|
|00001a90| 6f 74 20 61 76 6f 69 64 | 20 70 72 65 70 72 6f 63 |ot avoid| preproc|
|00001aa0| 65 73 73 6f 72 20 63 6f | 6e 64 69 74 69 6f 6e 61 |essor co|nditiona|
|00001ab0| 6c 73 20 69 6e 20 74 65 | 6d 70 6c 61 74 65 73 2c |ls in te|mplates,|
|00001ac0| 20 79 6f 75 20 63 61 6e | 0a 73 75 70 70 72 65 73 | you can|.suppres|
|00001ad0| 73 20 74 68 65 20 6c 69 | 6e 65 20 6e 75 6d 62 65 |s the li|ne numbe|
|00001ae0| 72 20 69 6e 66 6f 72 6d | 61 74 69 6f 6e 20 75 73 |r inform|ation us|
|00001af0| 69 6e 67 20 74 68 65 20 | 7b 66 45 6d 70 68 61 73 |ing the |{fEmphas|
|00001b00| 69 73 7d 2d 50 7b 66 7d | 20 70 72 65 70 72 6f 63 |is}-P{f}| preproc|
|00001b10| 65 73 73 6f 72 0a 6f 70 | 74 69 6f 6e 20 28 62 75 |essor.op|tion (bu|
|00001b20| 74 20 74 68 69 73 20 77 | 69 6c 6c 20 6d 61 6b 65 |t this w|ill make|
|00001b30| 20 64 65 62 75 67 67 69 | 6e 67 20 6d 6f 72 65 20 | debuggi|ng more |
|00001b40| 64 69 66 66 69 63 75 6c | 74 29 2c 20 62 79 20 63 |difficul|t), by c|
|00001b50| 6f 6d 70 69 6c 69 6e 67 | 20 74 68 65 0a 61 66 66 |ompiling| the.aff|
|00001b60| 65 63 74 65 64 20 6d 6f | 64 75 6c 65 73 20 6c 69 |ected mo|dules li|
|00001b70| 6b 65 20 74 68 69 73 3a | 0a 0a 23 57 72 61 70 20 |ke this:|..#Wrap |
|00001b80| 6f 66 66 0a 23 66 43 6f | 64 65 0a 67 2b 2b 20 2d |off.#fCo|de.g++ -|
|00001b90| 50 20 66 6f 6f 2e 63 63 | 20 2d 6f 20 66 6f 6f 0a |P foo.cc| -o foo.|
|00001ba0| 23 66 0a 23 57 72 61 70 | 20 6f 6e 0a 0a 0a 20 8f |#f.#Wrap| on... .|
|00001bb0| 20 50 61 72 73 69 6e 67 | 20 65 72 72 6f 72 73 20 | Parsing| errors |
|00001bc0| 61 72 65 20 72 65 70 6f | 72 74 65 64 20 77 68 65 |are repo|rted whe|
|00001bd0| 6e 20 74 65 6d 70 6c 61 | 74 65 73 20 61 72 65 20 |n templa|tes are |
|00001be0| 66 69 72 73 74 0a 7b 66 | 45 6d 70 68 61 73 69 73 |first.{f|Emphasis|
|00001bf0| 7d 69 6e 73 74 61 6e 74 | 69 61 74 65 64 7b 66 7d |}instant|iated{f}|
|00001c00| 2d 2d 2d 6e 6f 74 20 6f | 6e 20 74 68 65 20 74 65 |---not o|n the te|
|00001c10| 6d 70 6c 61 74 65 20 64 | 65 66 69 6e 69 74 69 6f |mplate d|efinitio|
|00001c20| 6e 20 69 74 73 65 6c 66 | 2e 20 20 49 6e 0a 70 61 |n itself|. In.pa|
|00001c30| 72 74 69 63 75 6c 61 72 | 2c 20 69 66 20 79 6f 75 |rticular|, if you|
|00001c40| 20 64 6f 20 6e 6f 74 20 | 69 6e 73 74 61 6e 74 69 | do not |instanti|
|00001c50| 61 74 65 20 61 20 74 65 | 6d 70 6c 61 74 65 20 64 |ate a te|mplate d|
|00001c60| 65 66 69 6e 69 74 69 6f | 6e 20 61 74 20 61 6c 6c |efinitio|n at all|
|00001c70| 2c 20 74 68 65 0a 63 6f | 6d 70 69 6c 65 72 20 6e |, the.co|mpiler n|
|00001c80| 65 76 65 72 20 72 65 70 | 6f 72 74 73 20 61 6e 79 |ever rep|orts any|
|00001c90| 20 70 61 72 73 69 6e 67 | 20 65 72 72 6f 72 73 20 | parsing| errors |
|00001ca0| 74 68 61 74 20 6d 61 79 | 20 62 65 20 69 6e 20 74 |that may| be in t|
|00001cb0| 68 65 20 74 65 6d 70 6c | 61 74 65 0a 64 65 66 69 |he templ|ate.defi|
|00001cc0| 6e 69 74 69 6f 6e 2e 0a | 0a 23 49 6e 64 65 6e 74 |nition..|.#Indent|
|00001cd0| 0a 0a 00 00 44 41 54 41 | 48 12 00 00 45 6e 63 6f |....DATA|H...Enco|
|00001ce0| 64 69 6e 67 0a 50 72 65 | 76 69 6f 75 73 3a 20 3c |ding.Pre|vious: <|
|00001cf0| 41 4e 53 49 3d 3e 41 4e | 53 49 3e 20 2a 20 55 70 |ANSI=>AN|SI> * Up|
|00001d00| 3a 20 3c 54 6f 70 3d 3e | 21 52 6f 6f 74 3e 0a 0a |: <Top=>|!Root>..|
|00001d10| 23 57 72 61 70 20 6f 6e | 0a 7b 66 48 32 7d 4e 61 |#Wrap on|.{fH2}Na|
|00001d20| 6d 65 20 45 6e 63 6f 64 | 69 6e 67 20 69 6e 20 47 |me Encod|ing in G|
|00001d30| 4e 55 20 43 2b 2b 7b 66 | 7d 0a 0a 0a 49 6e 20 6f |NU C++{f|}...In o|
|00001d40| 72 64 65 72 20 74 6f 20 | 73 75 70 70 6f 72 74 20 |rder to |support |
|00001d50| 69 74 73 20 73 74 72 6f | 6e 67 20 74 79 70 69 6e |its stro|ng typin|
|00001d60| 67 20 72 75 6c 65 73 20 | 61 6e 64 20 74 68 65 20 |g rules |and the |
|00001d70| 61 62 69 6c 69 74 79 20 | 74 6f 20 70 72 6f 76 69 |ability |to provi|
|00001d80| 64 65 0a 66 75 6e 63 74 | 69 6f 6e 20 6f 76 65 72 |de.funct|ion over|
|00001d90| 6c 6f 61 64 69 6e 67 2c | 20 74 68 65 20 43 2b 2b |loading,| the C++|
|00001da0| 20 70 72 6f 67 72 61 6d | 6d 69 6e 67 20 6c 61 6e | program|ming lan|
|00001db0| 67 75 61 67 65 20 7b 66 | 55 6e 64 65 72 6c 69 6e |guage {f|Underlin|
|00001dc0| 65 7d 65 6e 63 6f 64 65 | 73 7b 66 7d 0a 69 6e 66 |e}encode|s{f}.inf|
|00001dd0| 6f 72 6d 61 74 69 6f 6e | 20 61 62 6f 75 74 20 66 |ormation| about f|
|00001de0| 75 6e 63 74 69 6f 6e 73 | 20 61 6e 64 20 6f 62 6a |unctions| and obj|
|00001df0| 65 63 74 73 2c 20 73 6f | 20 74 68 61 74 20 63 6f |ects, so| that co|
|00001e00| 6e 66 6c 69 63 74 73 20 | 61 63 72 6f 73 73 20 6f |nflicts |across o|
|00001e10| 62 6a 65 63 74 0a 66 69 | 6c 65 73 20 63 61 6e 20 |bject.fi|les can |
|00001e20| 62 65 20 64 65 74 65 63 | 74 65 64 20 64 75 72 69 |be detec|ted duri|
|00001e30| 6e 67 20 6c 69 6e 6b 69 | 6e 67 2e 20 7b 66 45 6d |ng linki|ng. {fEm|
|00001e40| 70 68 61 73 69 73 7d 28 | 31 29 7b 66 7d 20 54 68 |phasis}(|1){f} Th|
|00001e50| 65 73 65 20 72 75 6c 65 | 73 20 74 65 6e 64 20 74 |ese rule|s tend t|
|00001e60| 6f 20 62 65 0a 75 6e 69 | 71 75 65 20 74 6f 20 65 |o be.uni|que to e|
|00001e70| 61 63 68 20 69 6e 64 69 | 76 69 64 75 61 6c 20 69 |ach indi|vidual i|
|00001e80| 6d 70 6c 65 6d 65 6e 74 | 61 74 69 6f 6e 20 6f 66 |mplement|ation of|
|00001e90| 20 43 2b 2b 2e 0a 0a 54 | 68 65 20 73 63 68 65 6d | C++...T|he schem|
|00001ea0| 65 20 64 65 74 61 69 6c | 65 64 20 69 6e 20 74 68 |e detail|ed in th|
|00001eb0| 65 20 63 6f 6d 6d 65 6e | 74 61 72 79 20 66 6f 72 |e commen|tary for|
|00001ec0| 20 37 2e 32 2e 31 20 6f | 66 20 7b 66 43 69 74 65 | 7.2.1 o|f {fCite|
|00001ed0| 7d 54 68 65 20 41 6e 6e | 6f 74 61 74 65 64 0a 52 |}The Ann|otated.R|
|00001ee0| 65 66 65 72 65 6e 63 65 | 20 4d 61 6e 75 61 6c 7b |eference| Manual{|
|00001ef0| 66 7d 20 6f 66 66 65 72 | 73 20 61 20 64 65 73 63 |f} offer|s a desc|
|00001f00| 72 69 70 74 69 6f 6e 20 | 6f 66 20 61 20 70 6f 73 |ription |of a pos|
|00001f10| 73 69 62 6c 65 20 69 6d | 70 6c 65 6d 65 6e 74 61 |sible im|plementa|
|00001f20| 74 69 6f 6e 0a 77 68 69 | 63 68 20 68 61 70 70 65 |tion.whi|ch happe|
|00001f30| 6e 73 20 74 6f 20 63 6c | 6f 73 65 6c 79 20 72 65 |ns to cl|osely re|
|00001f40| 73 65 6d 62 6c 65 20 74 | 68 65 20 7b 66 43 6f 64 |semble t|he {fCod|
|00001f50| 65 7d 63 66 72 6f 6e 74 | 7b 66 7d 20 63 6f 6d 70 |e}cfront|{f} comp|
|00001f60| 69 6c 65 72 2e 20 20 54 | 68 65 0a 64 65 73 69 67 |iler. T|he.desig|
|00001f70| 6e 20 75 73 65 64 20 69 | 6e 20 47 4e 55 20 43 2b |n used i|n GNU C+|
|00001f80| 2b 20 64 69 66 66 65 72 | 73 20 66 72 6f 6d 20 74 |+ differ|s from t|
|00001f90| 68 69 73 20 6d 6f 64 65 | 6c 20 69 6e 20 61 20 6e |his mode|l in a n|
|00001fa0| 75 6d 62 65 72 20 6f 66 | 20 77 61 79 73 3a 0a 0a |umber of| ways:..|
|00001fb0| 23 49 6e 64 65 6e 74 20 | 2b 34 0a 0a 20 8f 20 49 |#Indent |+4.. . I|
|00001fc0| 6e 20 61 64 64 69 74 69 | 6f 6e 20 74 6f 20 74 68 |n additi|on to th|
|00001fd0| 65 20 62 61 73 69 63 20 | 74 79 70 65 73 20 7b 66 |e basic |types {f|
|00001fe0| 43 6f 64 65 7d 76 6f 69 | 64 7b 66 7d 2c 20 7b 66 |Code}voi|d{f}, {f|
|00001ff0| 43 6f 64 65 7d 63 68 61 | 72 7b 66 7d 2c 20 7b 66 |Code}cha|r{f}, {f|
|00002000| 43 6f 64 65 7d 73 68 6f | 72 74 7b 66 7d 2c 0a 7b |Code}sho|rt{f},.{|
|00002010| 66 43 6f 64 65 7d 69 6e | 74 7b 66 7d 2c 20 7b 66 |fCode}in|t{f}, {f|
|00002020| 43 6f 64 65 7d 6c 6f 6e | 67 7b 66 7d 2c 20 7b 66 |Code}lon|g{f}, {f|
|00002030| 43 6f 64 65 7d 66 6c 6f | 61 74 7b 66 7d 2c 20 7b |Code}flo|at{f}, {|
|00002040| 66 43 6f 64 65 7d 64 6f | 75 62 6c 65 7b 66 7d 2c |fCode}do|uble{f},|
|00002050| 20 61 6e 64 20 7b 66 43 | 6f 64 65 7d 6c 6f 6e 67 | and {fC|ode}long|
|00002060| 0a 64 6f 75 62 6c 65 7b | 66 7d 2c 20 47 4e 55 20 |.double{|f}, GNU |
|00002070| 43 2b 2b 20 73 75 70 70 | 6f 72 74 73 20 74 77 6f |C++ supp|orts two|
|00002080| 20 61 64 64 69 74 69 6f | 6e 61 6c 20 74 79 70 65 | additio|nal type|
|00002090| 73 3a 20 7b 66 43 6f 64 | 65 7d 77 63 68 61 72 5c |s: {fCod|e}wchar\|
|000020a0| 5f 74 7b 66 7d 2c 20 74 | 68 65 20 77 69 64 65 0a |_t{f}, t|he wide.|
|000020b0| 63 68 61 72 61 63 74 65 | 72 20 74 79 70 65 2c 20 |characte|r type, |
|000020c0| 61 6e 64 20 7b 66 43 6f | 64 65 7d 6c 6f 6e 67 20 |and {fCo|de}long |
|000020d0| 6c 6f 6e 67 7b 66 7d 20 | 28 69 66 20 74 68 65 20 |long{f} |(if the |
|000020e0| 68 6f 73 74 20 73 75 70 | 70 6f 72 74 73 20 69 74 |host sup|ports it|
|000020f0| 29 2e 20 20 54 68 65 0a | 65 6e 63 6f 64 69 6e 67 |). The.|encoding|
|00002100| 73 20 66 6f 72 20 74 68 | 65 73 65 20 61 72 65 20 |s for th|ese are |
|00002110| 7b 66 45 6d 70 68 61 73 | 69 73 7d 77 7b 66 7d 20 |{fEmphas|is}w{f} |
|00002120| 61 6e 64 20 7b 66 45 6d | 70 68 61 73 69 73 7d 78 |and {fEm|phasis}x|
|00002130| 7b 66 7d 20 72 65 73 70 | 65 63 74 69 76 65 6c 79 |{f} resp|ectively|
|00002140| 2e 0a 0a 0a 20 8f 20 41 | 63 63 6f 72 64 69 6e 67 |.... . A|ccording|
|00002150| 20 74 6f 20 74 68 65 20 | 41 52 4d 2c 20 71 75 61 | to the |ARM, qua|
|00002160| 6c 69 66 69 65 64 20 6e | 61 6d 65 73 20 28 65 2e |lified n|ames (e.|
|00002170| 67 2e 2c 20 7b 66 45 6d | 70 68 61 73 69 73 7d 66 |g., {fEm|phasis}f|
|00002180| 6f 6f 3a 3a 62 61 72 3a | 3a 62 61 7a 7b 66 7d 29 |oo::bar:|:baz{f})|
|00002190| 20 61 72 65 0a 65 6e 63 | 6f 64 65 64 20 77 69 74 | are.enc|oded wit|
|000021a0| 68 20 61 20 6c 65 61 64 | 69 6e 67 20 7b 66 45 6d |h a lead|ing {fEm|
|000021b0| 70 68 61 73 69 73 7d 51 | 7b 66 7d 2e 20 20 46 6f |phasis}Q|{f}. Fo|
|000021c0| 6c 6c 6f 77 65 64 20 62 | 79 20 74 68 65 20 6e 75 |llowed b|y the nu|
|000021d0| 6d 62 65 72 20 6f 66 0a | 71 75 61 6c 69 66 69 63 |mber of.|qualific|
|000021e0| 61 74 69 6f 6e 73 20 28 | 69 6e 20 74 68 69 73 20 |ations (|in this |
|000021f0| 63 61 73 65 2c 20 74 68 | 72 65 65 29 20 61 6e 64 |case, th|ree) and|
|00002200| 20 74 68 65 20 72 65 73 | 70 65 63 74 69 76 65 20 | the res|pective |
|00002210| 6e 61 6d 65 73 2c 20 74 | 68 69 73 0a 6d 69 67 68 |names, t|his.migh|
|00002220| 74 20 62 65 20 65 6e 63 | 6f 64 65 64 20 61 73 20 |t be enc|oded as |
|00002230| 7b 66 45 6d 70 68 61 73 | 69 73 7d 51 33 33 66 6f |{fEmphas|is}Q33fo|
|00002240| 6f 33 62 61 72 33 62 61 | 7a 7b 66 7d 2e 20 20 47 |o3bar3ba|z{f}. G|
|00002250| 4e 55 20 43 2b 2b 20 61 | 64 64 73 20 61 20 6c 65 |NU C++ a|dds a le|
|00002260| 61 64 69 6e 67 0a 75 6e | 64 65 72 73 63 6f 72 65 |ading.un|derscore|
|00002270| 20 74 6f 20 74 68 65 20 | 6c 69 73 74 2c 20 70 72 | to the |list, pr|
|00002280| 6f 64 75 63 69 6e 67 20 | 7b 66 45 6d 70 68 61 73 |oducing |{fEmphas|
|00002290| 69 73 7d 5c 5f 51 33 33 | 66 6f 6f 33 62 61 72 33 |is}\_Q33|foo3bar3|
|000022a0| 62 61 7a 7b 66 7d 2e 0a | 20 0a 0a 20 8f 20 54 68 |baz{f}..| .. . Th|
|000022b0| 65 20 6f 70 65 72 61 74 | 6f 72 20 7b 66 45 6d 70 |e operat|or {fEmp|
|000022c0| 68 61 73 69 73 7d 5c 2a | 3d 7b 66 7d 20 69 73 20 |hasis}\*|={f} is |
|000022d0| 65 6e 63 6f 64 65 64 20 | 61 73 20 7b 66 45 6d 70 |encoded |as {fEmp|
|000022e0| 68 61 73 69 73 7d 5c 5f | 5c 5f 61 6d 6c 7b 66 7d |hasis}\_|\_aml{f}|
|000022f0| 2c 20 6e 6f 74 20 7b 66 | 45 6d 70 68 61 73 69 73 |, not {f|Emphasis|
|00002300| 7d 5c 5f 5c 5f 61 6d 75 | 7b 66 7d 2c 20 74 6f 0a |}\_\_amu|{f}, to.|
|00002310| 6d 61 74 63 68 20 74 68 | 65 20 6e 6f 72 6d 61 6c |match th|e normal|
|00002320| 20 7b 66 45 6d 70 68 61 | 73 69 73 7d 5c 2a 7b 66 | {fEmpha|sis}\*{f|
|00002330| 7d 20 6f 70 65 72 61 74 | 6f 72 2c 20 77 68 69 63 |} operat|or, whic|
|00002340| 68 20 69 73 20 65 6e 63 | 6f 64 65 64 20 61 73 20 |h is enc|oded as |
|00002350| 7b 66 45 6d 70 68 61 73 | 69 73 7d 5c 5f 5c 5f 6d |{fEmphas|is}\_\_m|
|00002360| 6c 7b 66 7d 2e 0a 0a 0a | 20 8f 20 49 6e 20 61 64 |l{f}....| . In ad|
|00002370| 64 69 74 69 6f 6e 20 74 | 6f 20 74 68 65 20 6e 6f |dition t|o the no|
|00002380| 72 6d 61 6c 20 6f 70 65 | 72 61 74 6f 72 73 2c 20 |rmal ope|rators, |
|00002390| 47 4e 55 20 43 2b 2b 20 | 61 6c 73 6f 20 6f 66 66 |GNU C++ |also off|
|000023a0| 65 72 73 20 74 68 65 20 | 6d 69 6e 69 6d 75 6d 20 |ers the |minimum |
|000023b0| 61 6e 64 0a 6d 61 78 69 | 6d 75 6d 20 6f 70 65 72 |and.maxi|mum oper|
|000023c0| 61 74 6f 72 73 20 7b 66 | 45 6d 70 68 61 73 69 73 |ators {f|Emphasis|
|000023d0| 7d 5c 3e 3f 7b 66 7d 20 | 61 6e 64 20 7b 66 45 6d |}\>?{f} |and {fEm|
|000023e0| 70 68 61 73 69 73 7d 5c | 3c 3f 7b 66 7d 2c 20 65 |phasis}\|<?{f}, e|
|000023f0| 6e 63 6f 64 65 64 20 61 | 73 20 7b 66 45 6d 70 68 |ncoded a|s {fEmph|
|00002400| 61 73 69 73 7d 5c 5f 5c | 5f 6d 78 7b 66 7d 20 61 |asis}\_\|_mx{f} a|
|00002410| 6e 64 0a 7b 66 45 6d 70 | 68 61 73 69 73 7d 5c 5f |nd.{fEmp|hasis}\_|
|00002420| 5c 5f 6d 6e 7b 66 7d 2c | 20 61 6e 64 20 74 68 65 |\_mn{f},| and the|
|00002430| 20 63 6f 6e 64 69 74 69 | 6f 6e 61 6c 20 6f 70 65 | conditi|onal ope|
|00002440| 72 61 74 6f 72 20 7b 66 | 45 6d 70 68 61 73 69 73 |rator {f|Emphasis|
|00002450| 7d 3f 3a 7b 66 7d 2c 20 | 65 6e 63 6f 64 65 64 20 |}?:{f}, |encoded |
|00002460| 61 73 20 7b 66 45 6d 70 | 68 61 73 69 73 7d 5c 5f |as {fEmp|hasis}\_|
|00002470| 5c 5f 63 6e 7b 66 7d 2e | 0a 0a 0a 20 8f 20 43 6f |\_cn{f}.|... . Co|
|00002480| 6e 73 74 72 75 63 74 6f | 72 73 20 61 72 65 20 65 |nstructo|rs are e|
|00002490| 6e 63 6f 64 65 64 20 61 | 73 20 73 69 6d 70 6c 79 |ncoded a|s simply|
|000024a0| 20 7b 66 45 6d 70 68 61 | 73 69 73 7d 5c 5f 5c 5f | {fEmpha|sis}\_\_|
|000024b0| 7b 66 53 74 72 6f 6e 67 | 7d 6e 61 6d 65 7b 66 7d |{fStrong|}name{f}|
|000024c0| 7b 66 7d 2c 20 77 68 65 | 72 65 20 7b 66 53 74 72 |{f}, whe|re {fStr|
|000024d0| 6f 6e 67 7d 6e 61 6d 65 | 7b 66 7d 0a 69 73 20 74 |ong}name|{f}.is t|
|000024e0| 68 65 20 65 6e 63 6f 64 | 65 64 20 6e 61 6d 65 20 |he encod|ed name |
|000024f0| 28 65 2e 67 2e 2c 20 7b | 66 43 6f 64 65 7d 33 66 |(e.g., {|fCode}3f|
|00002500| 6f 6f 7b 66 7d 20 66 6f | 72 20 74 68 65 20 7b 66 |oo{f} fo|r the {f|
|00002510| 43 6f 64 65 7d 66 6f 6f | 7b 66 7d 20 63 6c 61 73 |Code}foo|{f} clas|
|00002520| 73 0a 63 6f 6e 73 74 72 | 75 63 74 6f 72 29 2e 20 |s.constr|uctor). |
|00002530| 20 44 65 73 74 72 75 63 | 74 6f 72 73 20 61 72 65 | Destruc|tors are|
|00002540| 20 65 6e 63 6f 64 65 64 | 20 61 73 20 74 77 6f 20 | encoded| as two |
|00002550| 6c 65 61 64 69 6e 67 20 | 75 6e 64 65 72 73 63 6f |leading |undersco|
|00002560| 72 65 73 0a 73 65 70 61 | 72 61 74 65 64 20 62 79 |res.sepa|rated by|
|00002570| 20 65 69 74 68 65 72 20 | 61 20 70 65 72 69 6f 64 | either |a period|
|00002580| 20 6f 72 20 61 20 64 6f | 6c 6c 61 72 20 73 69 67 | or a do|llar sig|
|00002590| 6e 2c 20 64 65 70 65 6e | 64 69 6e 67 20 6f 6e 20 |n, depen|ding on |
|000025a0| 74 68 65 0a 63 61 70 61 | 62 69 6c 69 74 69 65 73 |the.capa|bilities|
|000025b0| 20 6f 66 20 74 68 65 20 | 6c 6f 63 61 6c 20 68 6f | of the |local ho|
|000025c0| 73 74 2c 20 66 6f 6c 6c | 6f 77 65 64 20 62 79 20 |st, foll|owed by |
|000025d0| 74 68 65 20 65 6e 63 6f | 64 65 64 20 6e 61 6d 65 |the enco|ded name|
|000025e0| 2e 20 20 46 6f 72 0a 65 | 78 61 6d 70 6c 65 2c 20 |. For.e|xample, |
|000025f0| 74 68 65 20 64 65 73 74 | 72 75 63 74 6f 72 20 7b |the dest|ructor {|
|00002600| 66 45 6d 70 68 61 73 69 | 73 7d 66 6f 6f 3a 3a 7e |fEmphasi|s}foo::~|
|00002610| 66 6f 6f 7b 66 7d 20 69 | 73 20 65 6e 63 6f 64 65 |foo{f} i|s encode|
|00002620| 64 20 61 73 20 7b 66 45 | 6d 70 68 61 73 69 73 7d |d as {fE|mphasis}|
|00002630| 5c 5f 24 5c 5f 33 66 6f | 6f 7b 66 7d 2e 0a 0a 0a |\_$\_3fo|o{f}....|
|00002640| 20 8f 20 56 69 72 74 75 | 61 6c 20 74 61 62 6c 65 | . Virtu|al table|
|00002650| 73 20 61 72 65 20 65 6e | 63 6f 64 65 64 20 77 69 |s are en|coded wi|
|00002660| 74 68 20 61 20 70 72 65 | 66 69 78 20 6f 66 20 7b |th a pre|fix of {|
|00002670| 66 45 6d 70 68 61 73 69 | 73 7d 5c 5f 76 74 7b 66 |fEmphasi|s}\_vt{f|
|00002680| 7d 2c 20 72 61 74 68 65 | 72 20 74 68 61 6e 0a 7b |}, rathe|r than.{|
|00002690| 66 45 6d 70 68 61 73 69 | 73 7d 5c 5f 5c 5f 76 74 |fEmphasi|s}\_\_vt|
|000026a0| 62 6c 7b 66 7d 2e 20 20 | 54 68 65 20 6e 61 6d 65 |bl{f}. |The name|
|000026b0| 73 20 6f 66 20 74 68 65 | 69 72 20 63 6c 61 73 73 |s of the|ir class|
|000026c0| 65 73 20 61 72 65 20 73 | 65 70 61 72 61 74 65 64 |es are s|eparated|
|000026d0| 20 62 79 20 64 6f 6c 6c | 61 72 20 73 69 67 6e 73 | by doll|ar signs|
|000026e0| 0a 28 6f 72 20 70 65 72 | 69 6f 64 73 29 2c 20 61 |.(or per|iods), a|
|000026f0| 6e 64 20 6e 6f 74 20 65 | 6e 63 6f 64 65 64 20 61 |nd not e|ncoded a|
|00002700| 73 20 6e 6f 72 6d 61 6c | 3a 20 74 68 65 20 76 69 |s normal|: the vi|
|00002710| 72 74 75 61 6c 20 74 61 | 62 6c 65 20 66 6f 72 0a |rtual ta|ble for.|
|00002720| 7b 66 43 6f 64 65 7d 66 | 6f 6f 7b 66 7d 20 69 73 |{fCode}f|oo{f} is|
|00002730| 20 7b 66 45 6d 70 68 61 | 73 69 73 7d 5c 5f 5c 5f | {fEmpha|sis}\_\_|
|00002740| 76 74 24 66 6f 6f 7b 66 | 7d 2c 20 61 6e 64 20 74 |vt$foo{f|}, and t|
|00002750| 68 65 20 74 61 62 6c 65 | 20 66 6f 72 20 7b 66 43 |he table| for {fC|
|00002760| 6f 64 65 7d 66 6f 6f 3a | 3a 62 61 72 7b 66 7d 20 |ode}foo:|:bar{f} |
|00002770| 69 73 0a 6e 61 6d 65 64 | 20 7b 66 45 6d 70 68 61 |is.named| {fEmpha|
|00002780| 73 69 73 7d 5c 5f 5c 5f | 76 74 24 66 6f 6f 24 62 |sis}\_\_|vt$foo$b|
|00002790| 61 72 7b 66 7d 2e 0a 0a | 0a 20 8f 20 53 74 61 74 |ar{f}...|. . Stat|
|000027a0| 69 63 20 6d 65 6d 62 65 | 72 73 20 61 72 65 20 65 |ic membe|rs are e|
|000027b0| 6e 63 6f 64 65 64 20 61 | 73 20 61 20 6c 65 61 64 |ncoded a|s a lead|
|000027c0| 69 6e 67 20 75 6e 64 65 | 72 73 63 6f 72 65 2c 20 |ing unde|rscore, |
|000027d0| 66 6f 6c 6c 6f 77 65 64 | 20 62 79 20 74 68 65 0a |followed| by the.|
|000027e0| 65 6e 63 6f 64 65 64 20 | 6e 61 6d 65 20 6f 66 20 |encoded |name of |
|000027f0| 74 68 65 20 63 6c 61 73 | 73 20 69 6e 20 77 68 69 |the clas|s in whi|
|00002800| 63 68 20 74 68 65 79 20 | 61 70 70 65 61 72 2c 20 |ch they |appear, |
|00002810| 61 20 73 65 70 61 72 61 | 74 69 6e 67 20 64 6f 6c |a separa|ting dol|
|00002820| 6c 61 72 20 73 69 67 6e | 0a 6f 72 20 70 65 72 69 |lar sign|.or peri|
|00002830| 6f 64 2c 20 61 6e 64 20 | 66 69 6e 61 6c 6c 79 20 |od, and |finally |
|00002840| 74 68 65 20 75 6e 65 6e | 63 6f 64 65 64 20 6e 61 |the unen|coded na|
|00002850| 6d 65 20 6f 66 20 74 68 | 65 20 76 61 72 69 61 62 |me of th|e variab|
|00002860| 6c 65 2e 20 20 46 6f 72 | 20 65 78 61 6d 70 6c 65 |le. For| example|
|00002870| 2c 0a 69 66 20 74 68 65 | 20 63 6c 61 73 73 20 7b |,.if the| class {|
|00002880| 66 43 6f 64 65 7d 66 6f | 6f 7b 66 7d 20 63 6f 6e |fCode}fo|o{f} con|
|00002890| 74 61 69 6e 73 20 61 20 | 73 74 61 74 69 63 20 6d |tains a |static m|
|000028a0| 65 6d 62 65 72 20 7b 66 | 45 6d 70 68 61 73 69 73 |ember {f|Emphasis|
|000028b0| 7d 62 61 72 7b 66 7d 2c | 20 69 74 73 0a 65 6e 63 |}bar{f},| its.enc|
|000028c0| 6f 64 69 6e 67 20 77 6f | 75 6c 64 20 62 65 20 7b |oding wo|uld be {|
|000028d0| 66 45 6d 70 68 61 73 69 | 73 7d 5c 5f 33 66 6f 6f |fEmphasi|s}\_3foo|
|000028e0| 24 62 61 72 7b 66 7d 2e | 0a 0a 0a 20 8f 20 47 4e |$bar{f}.|... . GN|
|000028f0| 55 20 43 2b 2b 20 69 73 | 20 6e 6f 74 20 61 73 20 |U C++ is| not as |
|00002900| 61 67 67 72 65 73 73 69 | 76 65 20 61 73 20 6f 74 |aggressi|ve as ot|
|00002910| 68 65 72 20 63 6f 6d 70 | 69 6c 65 72 73 20 77 68 |her comp|ilers wh|
|00002920| 65 6e 20 69 74 20 63 6f | 6d 65 73 20 74 6f 20 61 |en it co|mes to a|
|00002930| 6c 77 61 79 73 0a 67 65 | 6e 65 72 61 74 69 6e 67 |lways.ge|nerating|
|00002940| 20 7b 66 45 6d 70 68 61 | 73 69 73 7d 46 76 7b 66 | {fEmpha|sis}Fv{f|
|00002950| 7d 20 66 6f 72 20 66 75 | 6e 63 74 69 6f 6e 73 20 |} for fu|nctions |
|00002960| 77 69 74 68 20 6e 6f 20 | 61 72 67 75 6d 65 6e 74 |with no |argument|
|00002970| 73 2e 20 20 49 6e 20 70 | 61 72 74 69 63 75 6c 61 |s. In p|articula|
|00002980| 72 2c 0a 74 68 65 20 63 | 6f 6d 70 69 6c 65 72 20 |r,.the c|ompiler |
|00002990| 64 6f 65 73 20 6e 6f 74 | 20 61 64 64 20 74 68 65 |does not| add the|
|000029a0| 20 73 65 71 75 65 6e 63 | 65 20 74 6f 20 63 6f 6e | sequenc|e to con|
|000029b0| 76 65 72 73 69 6f 6e 20 | 6f 70 65 72 61 74 6f 72 |version |operator|
|000029c0| 73 2e 20 20 54 68 65 0a | 66 75 6e 63 74 69 6f 6e |s. The.|function|
|000029d0| 20 7b 66 45 6d 70 68 61 | 73 69 73 7d 66 6f 6f 3a | {fEmpha|sis}foo:|
|000029e0| 3a 62 61 72 28 29 7b 66 | 7d 20 69 73 20 65 6e 63 |:bar(){f|} is enc|
|000029f0| 6f 64 65 64 20 61 73 20 | 7b 66 45 6d 70 68 61 73 |oded as |{fEmphas|
|00002a00| 69 73 7d 62 61 72 5c 5f | 5c 5f 33 66 6f 6f 7b 66 |is}bar\_|\_3foo{f|
|00002a10| 7d 2c 20 6e 6f 74 0a 7b | 66 45 6d 70 68 61 73 69 |}, not.{|fEmphasi|
|00002a20| 73 7d 62 61 72 5c 5f 5c | 5f 33 66 6f 6f 46 76 7b |s}bar\_\|_3fooFv{|
|00002a30| 66 7d 2e 0a 0a 0a 20 8f | 20 54 68 65 20 61 72 67 |f}.... .| The arg|
|00002a40| 75 6d 65 6e 74 20 6c 69 | 73 74 20 66 6f 72 20 6d |ument li|st for m|
|00002a50| 65 74 68 6f 64 73 20 69 | 73 20 6e 6f 74 20 70 72 |ethods i|s not pr|
|00002a60| 65 66 69 78 65 64 20 62 | 79 20 61 20 6c 65 61 64 |efixed b|y a lead|
|00002a70| 69 6e 67 20 7b 66 45 6d | 70 68 61 73 69 73 7d 46 |ing {fEm|phasis}F|
|00002a80| 7b 66 7d 3b 20 69 74 0a | 69 73 20 63 6f 6e 73 69 |{f}; it.|is consi|
|00002a90| 64 65 72 65 64 20 69 6d | 70 6c 69 65 64 2e 0a 0a |dered im|plied...|
|00002aa0| 0a 20 8f 20 47 4e 55 20 | 43 2b 2b 20 61 70 70 72 |. . GNU |C++ appr|
|00002ab0| 6f 61 63 68 65 73 20 74 | 68 65 20 74 61 73 6b 20 |oaches t|he task |
|00002ac0| 6f 66 20 73 61 76 69 6e | 67 20 73 70 61 63 65 20 |of savin|g space |
|00002ad0| 69 6e 20 65 6e 63 6f 64 | 69 6e 67 73 0a 64 69 66 |in encod|ings.dif|
|00002ae0| 66 65 72 65 6e 74 6c 79 | 20 66 72 6f 6d 20 74 68 |ferently| from th|
|00002af0| 61 74 20 6e 6f 74 65 64 | 20 69 6e 20 74 68 65 20 |at noted| in the |
|00002b00| 41 52 4d 2e 20 20 49 74 | 20 64 6f 65 73 20 75 73 |ARM. It| does us|
|00002b10| 65 20 74 68 65 0a 7b 66 | 45 6d 70 68 61 73 69 73 |e the.{f|Emphasis|
|00002b20| 7d 54 7b 66 53 74 72 6f | 6e 67 7d 6e 7b 66 7d 7b |}T{fStro|ng}n{f}{|
|00002b30| 66 7d 20 61 6e 64 20 7b | 66 45 6d 70 68 61 73 69 |f} and {|fEmphasi|
|00002b40| 73 7d 4e 7b 66 53 74 72 | 6f 6e 67 7d 78 7b 66 7d |s}N{fStr|ong}x{f}|
|00002b50| 7b 66 53 74 72 6f 6e 67 | 7d 79 7b 66 7d 7b 66 7d |{fStrong|}y{f}{f}|
|00002b60| 20 63 6f 64 65 73 20 74 | 6f 20 73 69 67 6e 69 66 | codes t|o signif|
|00002b70| 79 20 63 6f 70 79 69 6e | 67 20 74 68 65 0a 7b 66 |y copyin|g the.{f|
|00002b80| 53 74 72 6f 6e 67 7d 6e | 7b 66 7d 74 68 20 61 72 |Strong}n|{f}th ar|
|00002b90| 67 75 6d 65 6e 74 27 73 | 20 74 79 70 65 2c 20 61 |gument's| type, a|
|00002ba0| 6e 64 20 6d 61 6b 69 6e | 67 20 74 68 65 20 6e 65 |nd makin|g the ne|
|00002bb0| 78 74 20 7b 66 53 74 72 | 6f 6e 67 7d 78 7b 66 7d |xt {fStr|ong}x{f}|
|00002bc0| 20 61 72 67 75 6d 65 6e | 74 73 20 62 65 20 74 68 | argumen|ts be th|
|00002bd0| 65 0a 74 79 70 65 20 6f | 66 20 74 68 65 20 7b 66 |e.type o|f the {f|
|00002be0| 53 74 72 6f 6e 67 7d 79 | 7b 66 7d 74 68 20 61 72 |Strong}y|{f}th ar|
|00002bf0| 67 75 6d 65 6e 74 2c 20 | 72 65 73 70 65 63 74 69 |gument, |respecti|
|00002c00| 76 65 6c 79 2e 20 20 48 | 6f 77 65 76 65 72 2c 20 |vely. H|owever, |
|00002c10| 74 68 65 20 76 61 6c 75 | 65 73 20 66 6f 72 0a 7b |the valu|es for.{|
|00002c20| 66 53 74 72 6f 6e 67 7d | 6e 7b 66 7d 20 61 6e 64 |fStrong}|n{f} and|
|00002c30| 20 7b 66 53 74 72 6f 6e | 67 7d 79 7b 66 7d 20 62 | {fStron|g}y{f} b|
|00002c40| 65 67 69 6e 20 61 74 20 | 7a 65 72 6f 20 77 69 74 |egin at |zero wit|
|00002c50| 68 20 47 4e 55 20 43 2b | 2b 2c 20 77 68 65 72 65 |h GNU C+|+, where|
|00002c60| 61 73 20 74 68 65 0a 41 | 52 4d 20 64 65 73 63 72 |as the.A|RM descr|
|00002c70| 69 62 65 73 20 74 68 65 | 6d 20 61 73 20 73 74 61 |ibes the|m as sta|
|00002c80| 72 74 69 6e 67 20 61 74 | 20 6f 6e 65 2e 20 20 46 |rting at| one. F|
|00002c90| 6f 72 20 74 68 65 20 66 | 75 6e 63 74 69 6f 6e 20 |or the f|unction |
|00002ca0| 7b 66 45 6d 70 68 61 73 | 69 73 7d 66 6f 6f 0a 28 |{fEmphas|is}foo.(|
|00002cb0| 62 61 72 74 79 70 65 2c | 20 62 61 72 74 79 70 65 |bartype,| bartype|
|00002cc0| 29 7b 66 7d 2c 20 47 4e | 55 20 43 2b 2b 20 75 73 |){f}, GN|U C++ us|
|00002cd0| 65 73 20 7b 66 45 6d 70 | 68 61 73 69 73 7d 66 6f |es {fEmp|hasis}fo|
|00002ce0| 6f 5c 5f 5c 5f 37 62 61 | 72 74 79 70 65 54 30 7b |o\_\_7ba|rtypeT0{|
|00002cf0| 66 7d 2c 20 77 68 69 6c | 65 0a 63 6f 6d 70 69 6c |f}, whil|e.compil|
|00002d00| 65 72 73 20 66 6f 6c 6c | 6f 77 69 6e 67 20 74 68 |ers foll|owing th|
|00002d10| 65 20 41 52 4d 20 65 78 | 61 6d 70 6c 65 20 67 65 |e ARM ex|ample ge|
|00002d20| 6e 65 72 61 74 65 20 7b | 66 45 6d 70 68 61 73 69 |nerate {|fEmphasi|
|00002d30| 73 7d 66 6f 6f 5c 5f 5c | 5f 37 62 61 72 74 79 70 |s}foo\_\|_7bartyp|
|00002d40| 65 54 31 7b 66 7d 2e 0a | 0a 0a 20 8f 20 47 4e 55 |eT1{f}..|.. . GNU|
|00002d50| 20 43 2b 2b 20 64 6f 65 | 73 20 6e 6f 74 20 62 6f | C++ doe|s not bo|
|00002d60| 74 68 65 72 20 75 73 69 | 6e 67 20 74 68 65 20 73 |ther usi|ng the s|
|00002d70| 70 61 63 65 2d 73 61 76 | 69 6e 67 20 6d 65 74 68 |pace-sav|ing meth|
|00002d80| 6f 64 73 20 66 6f 72 20 | 74 79 70 65 73 20 77 68 |ods for |types wh|
|00002d90| 6f 73 65 0a 65 6e 63 6f | 64 69 6e 67 20 69 73 20 |ose.enco|ding is |
|00002da0| 61 20 73 69 6e 67 6c 65 | 20 63 68 61 72 61 63 74 |a single| charact|
|00002db0| 65 72 20 28 6c 69 6b 65 | 20 61 6e 20 69 6e 74 65 |er (like| an inte|
|00002dc0| 67 65 72 2c 20 65 6e 63 | 6f 64 65 64 20 61 73 20 |ger, enc|oded as |
|00002dd0| 7b 66 45 6d 70 68 61 73 | 69 73 7d 69 7b 66 7d 29 |{fEmphas|is}i{f})|
|00002de0| 2e 0a 54 68 69 73 20 69 | 73 20 75 73 65 66 75 6c |..This i|s useful|
|00002df0| 20 69 6e 20 74 68 65 20 | 6d 6f 73 74 20 63 6f 6d | in the |most com|
|00002e00| 6d 6f 6e 20 63 61 73 65 | 73 20 28 74 77 6f 20 7b |mon case|s (two {|
|00002e10| 66 43 6f 64 65 7d 69 6e | 74 7b 66 7d 73 20 77 6f |fCode}in|t{f}s wo|
|00002e20| 75 6c 64 20 72 65 73 75 | 6c 74 20 69 6e 0a 75 73 |uld resu|lt in.us|
|00002e30| 69 6e 67 20 74 68 72 65 | 65 20 6c 65 74 74 65 72 |ing thre|e letter|
|00002e40| 73 2c 20 69 6e 73 74 65 | 61 64 20 6f 66 20 6a 75 |s, inste|ad of ju|
|00002e50| 73 74 20 7b 66 45 6d 70 | 68 61 73 69 73 7d 69 69 |st {fEmp|hasis}ii|
|00002e60| 7b 66 7d 29 2e 0a 0a 23 | 49 6e 64 65 6e 74 0a 0a |{f})...#|Indent..|
|00002e70| 0a 0a 23 4c 69 6e 65 0a | 28 31 29 20 54 68 69 73 |..#Line.|(1) This|
|00002e80| 20 65 6e 63 6f 64 69 6e | 67 20 69 73 20 61 6c 73 | encodin|g is als|
|00002e90| 6f 0a 73 6f 6d 65 74 69 | 6d 65 73 20 63 61 6c 6c |o.someti|mes call|
|00002ea0| 65 64 2c 20 77 68 69 6d | 73 69 63 61 6c 6c 79 20 |ed, whim|sically |
|00002eb0| 65 6e 6f 75 67 68 2c 20 | 7b 66 55 6e 64 65 72 6c |enough, |{fUnderl|
|00002ec0| 69 6e 65 7d 6d 61 6e 67 | 6c 69 6e 67 7b 66 7d 3b |ine}mang|ling{f};|
|00002ed0| 20 74 68 65 20 63 6f 72 | 72 65 73 70 6f 6e 64 69 | the cor|respondi|
|00002ee0| 6e 67 0a 64 65 63 6f 64 | 69 6e 67 20 69 73 20 73 |ng.decod|ing is s|
|00002ef0| 6f 6d 65 74 69 6d 65 73 | 20 63 61 6c 6c 65 64 20 |ometimes| called |
|00002f00| 7b 66 55 6e 64 65 72 6c | 69 6e 65 7d 64 65 6d 61 |{fUnderl|ine}dema|
|00002f10| 6e 67 6c 69 6e 67 7b 66 | 7d 2e 0a 0a 44 41 54 41 |ngling{f|}...DATA|
|00002f20| 8f 1d 00 00 45 6e 68 61 | 6e 63 65 6d 65 6e 74 73 |....Enha|ncements|
|00002f30| 20 61 6e 64 20 62 75 67 | 20 66 69 78 65 73 0a 50 | and bug| fixes.P|
|00002f40| 72 65 76 69 6f 75 73 3a | 20 3c 4e 65 77 20 66 65 |revious:| <New fe|
|00002f50| 61 74 75 72 65 73 3d 3e | 4e 65 77 66 65 61 74 75 |atures=>|Newfeatu|
|00002f60| 72 65 3e 20 2a 20 4e 65 | 78 74 3a 20 3c 50 72 6f |re> * Ne|xt: <Pro|
|00002f70| 62 6c 65 6d 73 20 77 69 | 74 68 20 64 65 62 75 67 |blems wi|th debug|
|00002f80| 67 69 6e 67 3d 3e 50 72 | 6f 62 6c 65 6d 73 77 69 |ging=>Pr|oblemswi|
|00002f90| 3e 20 2a 20 55 70 3a 20 | 3c 43 68 61 6e 67 65 73 |> * Up: |<Changes|
|00002fa0| 3d 3e 43 68 61 6e 67 65 | 73 3e 0a 0a 23 57 72 61 |=>Change|s>..#Wra|
|00002fb0| 70 20 6f 6e 0a 7b 66 48 | 33 7d 45 6e 68 61 6e 63 |p on.{fH|3}Enhanc|
|00002fc0| 65 6d 65 6e 74 73 20 61 | 6e 64 20 62 75 67 20 66 |ements a|nd bug f|
|00002fd0| 69 78 65 73 7b 66 7d 0a | 0a 23 49 6e 64 65 6e 74 |ixes{f}.|.#Indent|
|00002fe0| 20 2b 34 0a 0a 20 8f 20 | 59 6f 75 20 63 61 6e 20 | +4.. . |You can |
|00002ff0| 6e 6f 77 20 75 73 65 20 | 6e 65 73 74 65 64 20 74 |now use |nested t|
|00003000| 79 70 65 73 20 69 6e 20 | 61 20 74 65 6d 70 6c 61 |ypes in |a templa|
|00003010| 74 65 20 70 61 72 61 6d | 65 74 65 72 20 6c 69 73 |te param|eter lis|
|00003020| 74 2c 20 65 76 65 6e 20 | 69 66 20 74 68 65 20 6e |t, even |if the n|
|00003030| 65 73 74 65 64 0a 74 79 | 70 65 20 69 73 20 64 65 |ested.ty|pe is de|
|00003040| 66 69 6e 65 64 20 77 69 | 74 68 69 6e 20 74 68 65 |fined wi|thin the|
|00003050| 20 73 61 6d 65 20 63 6c | 61 73 73 20 74 68 61 74 | same cl|ass that|
|00003060| 20 61 74 74 65 6d 70 74 | 73 20 74 6f 20 75 73 65 | attempt|s to use|
|00003070| 20 74 68 65 20 74 65 6d | 70 6c 61 74 65 2e 0a 46 | the tem|plate..F|
|00003080| 6f 72 20 65 78 61 6d 70 | 6c 65 2c 20 67 69 76 65 |or examp|le, give|
|00003090| 6e 20 61 20 74 65 6d 70 | 6c 61 74 65 20 7b 66 43 |n a temp|late {fC|
|000030a0| 6f 64 65 7d 6c 69 73 74 | 7b 66 7d 2c 20 74 68 65 |ode}list|{f}, the|
|000030b0| 20 66 6f 6c 6c 6f 77 69 | 6e 67 20 6e 6f 77 20 77 | followi|ng now w|
|000030c0| 6f 72 6b 73 3a 0a 0a 23 | 57 72 61 70 20 6f 66 66 |orks:..#|Wrap off|
|000030d0| 0a 23 66 43 6f 64 65 0a | 73 74 72 75 63 74 20 67 |.#fCode.|struct g|
|000030e0| 6c 79 70 68 20 5c 7b 0a | 20 20 8c 0a 20 20 73 74 |lyph \{.| .. st|
|000030f0| 72 75 63 74 20 73 74 72 | 6f 6b 65 20 5c 7b 20 8c |ruct str|oke \{ .|
|00003100| 20 5c 7d 3b 0a 20 20 6c | 69 73 74 5c 3c 73 74 72 | \};. l|ist\<str|
|00003110| 6f 6b 65 5c 3e 20 6c 3b | 0a 20 20 8c 0a 5c 7d 0a |oke\> l;|. ..\}.|
|00003120| 23 66 0a 23 57 72 61 70 | 20 6f 6e 0a 0a 0a 20 8f |#f.#Wrap| on... .|
|00003130| 20 46 75 6e 63 74 69 6f | 6e 20 70 6f 69 6e 74 65 | Functio|n pointe|
|00003140| 72 73 20 6e 6f 77 20 77 | 6f 72 6b 20 69 6e 20 74 |rs now w|ork in t|
|00003150| 65 6d 70 6c 61 74 65 20 | 70 61 72 61 6d 65 74 65 |emplate |paramete|
|00003160| 72 20 6c 69 73 74 73 2e | 20 20 46 6f 72 0a 65 78 |r lists.| For.ex|
|00003170| 61 6d 70 6c 65 2c 20 79 | 6f 75 20 6d 69 67 68 74 |ample, y|ou might|
|00003180| 20 77 61 6e 74 20 74 6f | 20 69 6e 73 74 61 6e 74 | want to| instant|
|00003190| 69 61 74 65 20 61 20 70 | 61 72 61 6d 65 74 65 72 |iate a p|arameter|
|000031a0| 69 7a 65 64 20 7b 66 43 | 6f 64 65 7d 6c 69 73 74 |ized {fC|ode}list|
|000031b0| 7b 66 7d 20 63 6c 61 73 | 73 0a 69 6e 20 74 65 72 |{f} clas|s.in ter|
|000031c0| 6d 73 20 6f 66 20 61 20 | 70 6f 69 6e 74 65 72 20 |ms of a |pointer |
|000031d0| 74 6f 20 61 20 66 75 6e | 63 74 69 6f 6e 20 6c 69 |to a fun|ction li|
|000031e0| 6b 65 20 74 68 69 73 3a | 0a 0a 23 57 72 61 70 20 |ke this:|..#Wrap |
|000031f0| 6f 66 66 0a 23 66 43 6f | 64 65 0a 6c 69 73 74 5c |off.#fCo|de.list\|
|00003200| 3c 69 6e 74 20 28 5c 2a | 29 28 69 6e 74 2c 20 76 |<int (\*|)(int, v|
|00003210| 6f 69 64 20 5c 2a 29 5c | 3e 20 66 6e 6c 69 73 74 |oid \*)\|> fnlist|
|00003220| 3b 0a 23 66 0a 23 57 72 | 61 70 20 6f 6e 0a 0a 0a |;.#f.#Wr|ap on...|
|00003230| 20 8f 20 4e 65 73 74 65 | 64 20 74 79 70 65 73 20 | . Neste|d types |
|00003240| 61 72 65 20 6e 6f 77 20 | 68 61 6e 64 6c 65 64 20 |are now |handled |
|00003250| 63 6f 72 72 65 63 74 6c | 79 2e 20 20 49 6e 20 70 |correctl|y. In p|
|00003260| 61 72 74 69 63 75 6c 61 | 72 2c 20 74 68 65 72 65 |articula|r, there|
|00003270| 20 69 73 20 6e 6f 0a 6c | 6f 6e 67 65 72 20 61 20 | is no.l|onger a |
|00003280| 6c 69 6d 69 74 20 74 6f | 20 68 6f 77 20 64 65 65 |limit to| how dee|
|00003290| 70 6c 79 20 79 6f 75 20 | 63 61 6e 20 6e 65 73 74 |ply you |can nest|
|000032a0| 20 74 79 70 65 20 64 65 | 66 69 6e 69 74 69 6f 6e | type de|finition|
|000032b0| 73 2e 0a 0a 0a 20 8f 20 | 47 4e 55 20 43 2b 2b 20 |s.... . |GNU C++ |
|000032c0| 6e 6f 77 20 63 6f 6e 66 | 6f 72 6d 73 20 74 6f 20 |now conf|orms to |
|000032d0| 74 68 65 20 73 70 65 63 | 69 66 69 63 61 74 69 6f |the spec|ificatio|
|000032e0| 6e 73 20 69 6e 20 43 68 | 61 70 74 65 72 20 31 31 |ns in Ch|apter 11|
|000032f0| 20 6f 66 20 74 68 65 0a | 41 52 4d 2c 20 60 60 4d | of the.|ARM, ``M|
|00003300| 65 6d 62 65 72 20 41 63 | 63 65 73 73 20 43 6f 6e |ember Ac|cess Con|
|00003310| 74 72 6f 6c 27 27 2e 0a | 0a 0a 20 8f 20 54 68 65 |trol''..|.. . The|
|00003320| 20 41 4e 53 49 20 43 2b | 2b 20 63 6f 6d 6d 69 74 | ANSI C+|+ commit|
|00003330| 74 65 65 20 68 61 73 20 | 69 6e 74 72 6f 64 75 63 |tee has |introduc|
|00003340| 65 64 20 61 20 6e 65 77 | 20 6b 65 79 77 6f 72 64 |ed a new| keyword|
|00003350| 20 7b 66 43 6f 64 65 7d | 6d 75 74 61 62 6c 65 7b | {fCode}|mutable{|
|00003360| 66 7d 2e 0a 47 4e 55 20 | 43 2b 2b 20 73 75 70 70 |f}..GNU |C++ supp|
|00003370| 6f 72 74 73 20 69 74 2e | 20 20 55 73 65 20 7b 66 |orts it.| Use {f|
|00003380| 43 6f 64 65 7d 6d 75 74 | 61 62 6c 65 7b 66 7d 20 |Code}mut|able{f} |
|00003390| 74 6f 20 73 70 65 63 69 | 66 79 20 74 68 61 74 20 |to speci|fy that |
|000033a0| 73 6f 6d 65 0a 70 61 72 | 74 69 63 75 6c 61 72 20 |some.par|ticular |
|000033b0| 6d 65 6d 62 65 72 73 20 | 6f 66 20 61 20 7b 66 43 |members |of a {fC|
|000033c0| 6f 64 65 7d 63 6f 6e 73 | 74 7b 66 7d 20 63 6c 61 |ode}cons|t{f} cla|
|000033d0| 73 73 20 61 72 65 20 7b | 66 45 6d 70 68 61 73 69 |ss are {|fEmphasi|
|000033e0| 73 7d 6e 6f 74 7b 66 7d | 20 63 6f 6e 73 74 61 6e |s}not{f}| constan|
|000033f0| 74 2e 20 20 46 6f 72 0a | 65 78 61 6d 70 6c 65 2c |t. For.|example,|
|00003400| 20 79 6f 75 20 63 61 6e | 20 75 73 65 20 74 68 69 | you can| use thi|
|00003410| 73 20 74 6f 20 69 6e 63 | 6c 75 64 65 20 61 20 63 |s to inc|lude a c|
|00003420| 61 63 68 65 20 69 6e 20 | 61 20 64 61 74 61 20 73 |ache in |a data s|
|00003430| 74 72 75 63 74 75 72 65 | 20 74 68 61 74 0a 6f 74 |tructure| that.ot|
|00003440| 68 65 72 77 69 73 65 20 | 72 65 70 72 65 73 65 6e |herwise |represen|
|00003450| 74 73 20 61 20 72 65 61 | 64 2d 6f 6e 6c 79 20 64 |ts a rea|d-only d|
|00003460| 61 74 61 62 61 73 65 2e | 0a 0a 0a 20 8f 20 45 72 |atabase.|... . Er|
|00003470| 72 6f 72 20 6d 65 73 73 | 61 67 65 73 20 6e 6f 77 |ror mess|ages now|
|00003480| 20 65 78 70 6c 69 63 69 | 74 6c 79 20 73 70 65 63 | explici|tly spec|
|00003490| 69 66 79 20 74 68 65 20 | 64 65 63 6c 61 72 61 74 |ify the |declarat|
|000034a0| 69 6f 6e 2c 20 74 79 70 | 65 2c 20 6f 72 0a 65 78 |ion, typ|e, or.ex|
|000034b0| 70 72 65 73 73 69 6f 6e | 20 74 68 61 74 20 63 6f |pression| that co|
|000034c0| 6e 74 61 69 6e 73 20 61 | 6e 20 65 72 72 6f 72 2e |ntains a|n error.|
|000034d0| 0a 0a 0a 20 8f 20 54 6f | 20 61 76 6f 69 64 20 63 |... . To| avoid c|
|000034e0| 6f 70 79 69 6e 67 20 61 | 6e 64 20 65 64 69 74 69 |opying a|nd editi|
|000034f0| 6e 67 20 61 6c 6c 20 73 | 79 73 74 65 6d 20 69 6e |ng all s|ystem in|
|00003500| 63 6c 75 64 65 20 66 69 | 6c 65 73 20 64 75 72 69 |clude fi|les duri|
|00003510| 6e 67 20 47 4e 55 0a 43 | 2b 2b 20 69 6e 73 74 61 |ng GNU.C|++ insta|
|00003520| 6c 6c 61 74 69 6f 6e 2c | 20 74 68 65 20 63 6f 6d |llation,| the com|
|00003530| 70 69 6c 65 72 20 6e 6f | 77 20 61 75 74 6f 6d 61 |piler no|w automa|
|00003540| 74 69 63 61 6c 6c 79 20 | 72 65 63 6f 67 6e 69 7a |tically |recogniz|
|00003550| 65 73 20 73 79 73 74 65 | 6d 0a 69 6e 63 6c 75 64 |es syste|m.includ|
|00003560| 65 20 66 69 6c 65 73 20 | 61 73 20 43 20 6c 61 6e |e files |as C lan|
|00003570| 67 75 61 67 65 20 64 65 | 66 69 6e 69 74 69 6f 6e |guage de|finition|
|00003580| 73 2c 20 61 73 20 69 66 | 20 74 68 65 79 20 77 65 |s, as if| they we|
|00003590| 72 65 20 77 72 61 70 70 | 65 64 20 69 6e 0a 7b 66 |re wrapp|ed in.{f|
|000035a0| 45 6d 70 68 61 73 69 73 | 7d 65 78 74 65 72 6e 20 |Emphasis|}extern |
|000035b0| 22 43 22 20 5c 7b 20 8c | 20 5c 7d 7b 66 7d 2e 0a |"C" \{ .| \}{f}..|
|000035c0| 0a 0a 20 8f 20 54 68 65 | 20 63 6f 6d 70 69 6c 65 |.. . The| compile|
|000035d0| 72 20 63 68 65 63 6b 73 | 20 6f 70 65 72 61 74 6f |r checks| operato|
|000035e0| 72 20 64 65 63 6c 61 72 | 61 74 69 6f 6e 73 20 6d |r declar|ations m|
|000035f0| 6f 72 65 20 73 74 72 69 | 63 74 6c 79 2e 20 20 46 |ore stri|ctly. F|
|00003600| 6f 72 20 65 78 61 6d 70 | 6c 65 2c 0a 79 6f 75 20 |or examp|le,.you |
|00003610| 6d 61 79 20 6e 6f 20 6c | 6f 6e 67 65 72 20 64 65 |may no l|onger de|
|00003620| 63 6c 61 72 65 20 61 6e | 20 7b 66 45 6d 70 68 61 |clare an| {fEmpha|
|00003630| 73 69 73 7d 6f 70 65 72 | 61 74 6f 72 20 2b 7b 66 |sis}oper|ator +{f|
|00003640| 7d 20 77 69 74 68 20 74 | 68 72 65 65 20 61 72 67 |} with t|hree arg|
|00003650| 75 6d 65 6e 74 73 2e 0a | 0a 0a 20 8f 20 59 6f 75 |uments..|.. . You|
|00003660| 20 63 61 6e 20 6e 6f 77 | 20 75 73 65 20 74 65 6d | can now| use tem|
|00003670| 70 6c 61 74 65 20 74 79 | 70 65 20 61 72 67 75 6d |plate ty|pe argum|
|00003680| 65 6e 74 73 20 69 6e 20 | 74 68 65 20 73 61 6d 65 |ents in |the same|
|00003690| 20 74 65 6d 70 6c 61 74 | 65 0a 70 61 72 61 6d 65 | templat|e.parame|
|000036a0| 74 65 72 20 6c 69 73 74 | 20 77 68 65 72 65 20 74 |ter list| where t|
|000036b0| 68 65 20 74 79 70 65 20 | 61 72 67 75 6d 65 6e 74 |he type |argument|
|000036c0| 20 69 73 20 73 70 65 63 | 69 66 69 65 64 20 28 61 | is spec|ified (a|
|000036d0| 73 20 77 65 6c 6c 20 61 | 73 20 69 6e 20 74 68 65 |s well a|s in the|
|000036e0| 0a 74 65 6d 70 6c 61 74 | 65 20 62 6f 64 79 29 2e |.templat|e body).|
|000036f0| 20 20 46 6f 72 20 65 78 | 61 6d 70 6c 65 2c 20 79 | For ex|ample, y|
|00003700| 6f 75 20 6d 61 79 20 77 | 72 69 74 65 0a 0a 23 57 |ou may w|rite..#W|
|00003710| 72 61 70 20 6f 66 66 0a | 23 66 43 6f 64 65 0a 74 |rap off.|#fCode.t|
|00003720| 65 6d 70 6c 61 74 65 20 | 5c 3c 63 6c 61 73 73 20 |emplate |\<class |
|00003730| 54 2c 20 54 20 74 5c 3e | 20 63 6c 61 73 73 20 41 |T, T t\>| class A|
|00003740| 20 5c 7b 20 8c 20 5c 7d | 3b 0a 23 66 0a 23 57 72 | \{ . \}|;.#f.#Wr|
|00003750| 61 70 20 6f 6e 0a 0a 0a | 20 8f 20 44 65 73 74 72 |ap on...| . Destr|
|00003760| 75 63 74 6f 72 73 20 61 | 72 65 20 6e 6f 77 20 61 |uctors a|re now a|
|00003770| 76 61 69 6c 61 62 6c 65 | 20 66 6f 72 20 61 6c 6c |vailable| for all|
|00003780| 20 74 79 70 65 73 2c 20 | 65 76 65 6e 20 62 75 69 | types, |even bui|
|00003790| 6c 74 2d 69 6e 20 6f 6e | 65 73 3b 20 66 6f 72 0a |lt-in on|es; for.|
|000037a0| 65 78 61 6d 70 6c 65 2c | 20 79 6f 75 20 63 61 6e |example,| you can|
|000037b0| 20 63 61 6c 6c 20 7b 66 | 45 6d 70 68 61 73 69 73 | call {f|Emphasis|
|000037c0| 7d 69 6e 74 3a 3a 7e 69 | 6e 74 7b 66 7d 2e 20 20 |}int::~i|nt{f}. |
|000037d0| 28 44 65 73 74 72 75 63 | 74 6f 72 73 20 66 6f 72 |(Destruc|tors for|
|000037e0| 20 74 79 70 65 73 20 6c | 69 6b 65 0a 7b 66 43 6f | types l|ike.{fCo|
|000037f0| 64 65 7d 69 6e 74 7b 66 | 7d 20 64 6f 20 6e 6f 74 |de}int{f|} do not|
|00003800| 20 61 63 74 75 61 6c 6c | 79 20 64 6f 20 61 6e 79 | actuall|y do any|
|00003810| 74 68 69 6e 67 2c 20 62 | 75 74 20 74 68 65 69 72 |thing, b|ut their|
|00003820| 20 65 78 69 73 74 65 6e | 63 65 20 70 72 6f 76 69 | existen|ce provi|
|00003830| 64 65 73 20 61 0a 6c 65 | 76 65 6c 20 6f 66 20 67 |des a.le|vel of g|
|00003840| 65 6e 65 72 61 6c 69 74 | 79 20 74 68 61 74 20 70 |eneralit|y that p|
|00003850| 65 72 6d 69 74 73 20 73 | 6d 6f 6f 74 68 20 74 65 |ermits s|mooth te|
|00003860| 6d 70 6c 61 74 65 20 65 | 78 70 61 6e 73 69 6f 6e |mplate e|xpansion|
|00003870| 20 69 6e 20 6d 6f 72 65 | 0a 63 61 73 65 73 2e 29 | in more|.cases.)|
|00003880| 0a 0a 0a 20 8f 20 45 6e | 75 6d 65 72 61 74 65 64 |... . En|umerated|
|00003890| 20 74 79 70 65 73 20 64 | 65 63 6c 61 72 65 64 20 | types d|eclared |
|000038a0| 69 6e 73 69 64 65 20 61 | 20 63 6c 61 73 73 20 61 |inside a| class a|
|000038b0| 72 65 20 6e 6f 77 20 68 | 61 6e 64 6c 65 64 20 63 |re now h|andled c|
|000038c0| 6f 72 72 65 63 74 6c 79 | 2e 0a 0a 0a 20 8f 20 41 |orrectly|.... . A|
|000038d0| 6e 20 61 72 67 75 6d 65 | 6e 74 20 6c 69 73 74 20 |n argume|nt list |
|000038e0| 66 6f 72 20 61 20 66 75 | 6e 63 74 69 6f 6e 20 6d |for a fu|nction m|
|000038f0| 61 79 20 6e 6f 74 20 75 | 73 65 20 61 6e 20 69 6e |ay not u|se an in|
|00003900| 69 74 69 61 6c 69 7a 65 | 72 20 6c 69 73 74 20 66 |itialize|r list f|
|00003910| 6f 72 20 69 74 73 20 64 | 65 66 61 75 6c 74 0a 76 |or its d|efault.v|
|00003920| 61 6c 75 65 2e 20 20 46 | 6f 72 20 65 78 61 6d 70 |alue. F|or examp|
|00003930| 6c 65 2c 20 7b 66 45 6d | 70 68 61 73 69 73 7d 76 |le, {fEm|phasis}v|
|00003940| 6f 69 64 20 66 6f 6f 20 | 28 20 54 20 78 20 3d 20 |oid foo |( T x = |
|00003950| 5c 7b 20 31 2c 20 32 20 | 5c 7d 20 29 7b 66 7d 20 |\{ 1, 2 |\} ){f} |
|00003960| 69 73 20 6e 6f 74 20 70 | 65 72 6d 69 74 74 65 64 |is not p|ermitted|
|00003970| 2e 0a 0a 0a 20 8f 20 41 | 20 73 69 67 6e 69 66 69 |.... . A| signifi|
|00003980| 63 61 6e 74 20 61 6d 6f | 75 6e 74 20 6f 66 20 77 |cant amo|unt of w|
|00003990| 6f 72 6b 20 77 65 6e 74 | 20 69 6e 74 6f 20 69 6d |ork went| into im|
|000039a0| 70 72 6f 76 69 6e 67 20 | 74 68 65 20 61 62 69 6c |proving |the abil|
|000039b0| 69 74 79 20 6f 66 20 74 | 68 65 0a 63 6f 6d 70 69 |ity of t|he.compi|
|000039c0| 6c 65 72 20 74 6f 20 61 | 63 74 20 61 63 63 75 72 |ler to a|ct accur|
|000039d0| 61 74 65 6c 79 20 6f 6e | 20 6d 75 6c 74 69 70 6c |ately on| multipl|
|000039e0| 65 20 69 6e 68 65 72 69 | 74 61 6e 63 65 20 61 6e |e inheri|tance an|
|000039f0| 64 20 76 69 72 74 75 61 | 6c 0a 66 75 6e 63 74 69 |d virtua|l.functi|
|00003a00| 6f 6e 73 2e 20 20 56 69 | 72 74 75 61 6c 20 66 75 |ons. Vi|rtual fu|
|00003a10| 6e 63 74 69 6f 6e 20 64 | 69 73 70 61 74 63 68 20 |nction d|ispatch |
|00003a20| 68 61 73 20 62 65 65 6e | 20 65 6e 68 61 6e 63 65 |has been| enhance|
|00003a30| 64 20 61 73 20 77 65 6c | 6c 2e 0a 0a 0a 20 8f 20 |d as wel|l.... . |
|00003a40| 54 68 65 20 77 61 72 6e | 69 6e 67 20 63 6f 6e 63 |The warn|ing conc|
|00003a50| 65 72 6e 69 6e 67 20 61 | 20 76 69 72 74 75 61 6c |erning a| virtual|
|00003a60| 20 69 6e 68 65 72 69 74 | 61 6e 63 65 20 65 6e 76 | inherit|ance env|
|00003a70| 69 72 6f 6e 6d 65 6e 74 | 20 77 69 74 68 20 61 0a |ironment| with a.|
|00003a80| 6e 6f 6e 2d 76 69 72 74 | 75 61 6c 20 64 65 73 74 |non-virt|ual dest|
|00003a90| 72 75 63 74 6f 72 20 68 | 61 73 20 62 65 65 6e 20 |ructor h|as been |
|00003aa0| 64 69 73 61 62 6c 65 64 | 2c 20 73 69 6e 63 65 20 |disabled|, since |
|00003ab0| 69 74 20 69 73 20 6e 6f | 74 20 63 6c 65 61 72 20 |it is no|t clear |
|00003ac0| 74 68 61 74 0a 73 75 63 | 68 20 61 20 77 61 72 6e |that.suc|h a warn|
|00003ad0| 69 6e 67 20 69 73 20 77 | 61 72 72 61 6e 74 65 64 |ing is w|arranted|
|00003ae0| 2e 0a 0a 0a 20 8f 20 55 | 6e 74 69 6c 20 65 78 63 |.... . U|ntil exc|
|00003af0| 65 70 74 69 6f 6e 20 68 | 61 6e 64 6c 69 6e 67 20 |eption h|andling |
|00003b00| 69 73 20 66 75 6c 6c 79 | 20 69 6d 70 6c 65 6d 65 |is fully| impleme|
|00003b10| 6e 74 65 64 20 69 6e 20 | 74 68 65 20 52 65 6e 6f |nted in |the Reno|
|00003b20| 2d 32 20 72 65 6c 65 61 | 73 65 2c 20 75 73 65 0a |-2 relea|se, use.|
|00003b30| 6f 66 20 74 68 65 20 69 | 64 65 6e 74 69 66 69 65 |of the i|dentifie|
|00003b40| 72 73 20 7b 66 45 6d 70 | 68 61 73 69 73 7d 63 61 |rs {fEmp|hasis}ca|
|00003b50| 74 63 68 7b 66 7d 2c 20 | 7b 66 45 6d 70 68 61 73 |tch{f}, |{fEmphas|
|00003b60| 69 73 7d 74 68 72 6f 77 | 7b 66 7d 2c 20 6f 72 20 |is}throw|{f}, or |
|00003b70| 7b 66 45 6d 70 68 61 73 | 69 73 7d 74 72 79 7b 66 |{fEmphas|is}try{f|
|00003b80| 7d 20 72 65 73 75 6c 74 | 73 0a 69 6e 20 74 68 65 |} result|s.in the|
|00003b90| 20 77 61 72 6e 69 6e 67 | 3a 0a 0a 23 57 72 61 70 | warning|:..#Wrap|
|00003ba0| 20 6f 66 66 0a 23 66 43 | 6f 64 65 0a 74 2e 43 3a | off.#fC|ode.t.C:|
|00003bb0| 31 3a 20 77 61 72 6e 69 | 6e 67 3a 20 60 63 61 74 |1: warni|ng: `cat|
|00003bc0| 63 68 27 2c 20 60 74 68 | 72 6f 77 27 2c 20 61 6e |ch', `th|row', an|
|00003bd0| 64 20 60 74 72 79 27 20 | 0a 20 20 20 20 20 20 20 |d `try' |. |
|00003be0| 61 72 65 20 61 6c 6c 20 | 43 2b 2b 20 72 65 73 65 |are all |C++ rese|
|00003bf0| 72 76 65 64 20 77 6f 72 | 64 73 0a 23 66 0a 23 57 |rved wor|ds.#f.#W|
|00003c00| 72 61 70 20 6f 6e 0a 0a | 0a 20 8f 20 57 68 65 6e |rap on..|. . When|
|00003c10| 20 67 69 76 69 6e 67 20 | 61 20 77 61 72 6e 69 6e | giving |a warnin|
|00003c20| 67 20 6f 72 20 65 72 72 | 6f 72 20 63 6f 6e 63 65 |g or err|or conce|
|00003c30| 72 6e 69 6e 67 20 69 6e | 69 74 69 61 6c 69 7a 61 |rning in|itializa|
|00003c40| 74 69 6f 6e 20 6f 66 20 | 61 20 6d 65 6d 62 65 72 |tion of |a member|
|00003c50| 20 69 6e 20 61 0a 63 6c | 61 73 73 2c 20 74 68 65 | in a.cl|ass, the|
|00003c60| 20 63 6f 6d 70 69 6c 65 | 72 20 67 69 76 65 73 20 | compile|r gives |
|00003c70| 74 68 65 20 6e 61 6d 65 | 20 6f 66 20 74 68 65 20 |the name| of the |
|00003c80| 6d 65 6d 62 65 72 20 69 | 66 20 69 74 20 68 61 73 |member i|f it has|
|00003c90| 20 6f 6e 65 2e 0a 0a 0a | 20 8f 20 44 65 74 65 63 | one....| . Detec|
|00003ca0| 74 69 6e 67 20 66 72 69 | 65 6e 64 73 68 69 70 20 |ting fri|endship |
|00003cb0| 62 65 74 77 65 65 6e 20 | 63 6c 61 73 73 65 73 20 |between |classes |
|00003cc0| 69 73 20 6d 6f 72 65 20 | 61 63 63 75 72 61 74 65 |is more |accurate|
|00003cd0| 6c 79 20 63 68 65 63 6b | 65 64 2e 0a 0a 0a 20 8f |ly check|ed.... .|
|00003ce0| 20 54 68 65 20 73 79 6e | 74 61 78 65 73 20 6f 66 | The syn|taxes of|
|00003cf0| 20 7b 66 45 6d 70 68 61 | 73 69 73 7d 5c 23 70 72 | {fEmpha|sis}\#pr|
|00003d00| 61 67 6d 61 20 69 6d 70 | 6c 65 6d 65 6e 74 61 74 |agma imp|lementat|
|00003d10| 69 6f 6e 20 22 66 69 6c | 65 2e 68 22 7b 66 7d 20 |ion "fil|e.h"{f} |
|00003d20| 61 6e 64 0a 7b 66 45 6d | 70 68 61 73 69 73 7d 5c |and.{fEm|phasis}\|
|00003d30| 23 70 72 61 67 6d 61 20 | 69 6e 74 65 72 66 61 63 |#pragma |interfac|
|00003d40| 65 7b 66 7d 20 61 72 65 | 20 6e 6f 77 20 6d 6f 72 |e{f} are| now mor|
|00003d50| 65 20 73 74 72 69 63 74 | 6c 79 20 63 6f 6e 74 72 |e strict|ly contr|
|00003d60| 6f 6c 6c 65 64 2e 20 20 | 54 68 65 20 63 6f 6d 70 |olled. |The comp|
|00003d70| 69 6c 65 72 0a 6e 6f 74 | 69 63 65 73 20 28 61 6e |iler.not|ices (an|
|00003d80| 64 20 77 61 72 6e 73 29 | 20 77 68 65 6e 20 61 6e |d warns)| when an|
|00003d90| 79 20 74 65 78 74 20 66 | 6f 6c 6c 6f 77 73 20 7b |y text f|ollows {|
|00003da0| 66 43 69 74 65 7d 66 69 | 6c 65 2e 68 7b 66 7d 20 |fCite}fi|le.h{f} |
|00003db0| 69 6e 20 74 68 65 0a 69 | 6d 70 6c 65 6d 65 6e 74 |in the.i|mplement|
|00003dc0| 61 74 69 6f 6e 20 70 72 | 61 67 6d 61 2c 20 6f 72 |ation pr|agma, or|
|00003dd0| 20 66 6f 6c 6c 6f 77 73 | 20 74 68 65 20 77 6f 72 | follows| the wor|
|00003de0| 64 20 7b 66 45 6d 70 68 | 61 73 69 73 7d 69 6e 74 |d {fEmph|asis}int|
|00003df0| 65 72 66 61 63 65 7b 66 | 7d 2e 20 20 41 6e 79 20 |erface{f|}. Any |
|00003e00| 73 75 63 68 0a 74 65 78 | 74 20 69 73 20 6f 74 68 |such.tex|t is oth|
|00003e10| 65 72 77 69 73 65 20 69 | 67 6e 6f 72 65 64 2e 0a |erwise i|gnored..|
|00003e20| 0a 0a 20 8f 20 54 72 79 | 69 6e 67 20 74 6f 20 64 |.. . Try|ing to d|
|00003e30| 65 63 6c 61 72 65 20 61 | 20 74 65 6d 70 6c 61 74 |eclare a| templat|
|00003e40| 65 20 6f 6e 20 61 20 76 | 61 72 69 61 62 6c 65 20 |e on a v|ariable |
|00003e50| 6f 72 20 74 79 70 65 20 | 69 73 20 6e 6f 77 20 63 |or type |is now c|
|00003e60| 6f 6e 73 69 64 65 72 65 | 64 20 61 6e 0a 65 72 72 |onsidere|d an.err|
|00003e70| 6f 72 2c 20 6e 6f 74 20 | 61 6e 20 75 6e 69 6d 70 |or, not |an unimp|
|00003e80| 6c 65 6d 65 6e 74 65 64 | 20 66 65 61 74 75 72 65 |lemented| feature|
|00003e90| 2e 0a 0a 0a 20 8f 20 57 | 68 65 6e 20 61 6e 20 65 |.... . W|hen an e|
|00003ea0| 72 72 6f 72 20 6f 63 63 | 75 72 73 20 69 6e 76 6f |rror occ|urs invo|
|00003eb0| 6c 76 69 6e 67 20 61 20 | 74 65 6d 70 6c 61 74 65 |lving a |template|
|00003ec0| 2c 20 74 68 65 20 63 6f | 6d 70 69 6c 65 72 20 61 |, the co|mpiler a|
|00003ed0| 74 74 65 6d 70 74 73 20 | 74 6f 0a 74 65 6c 6c 20 |ttempts |to.tell |
|00003ee0| 79 6f 75 20 61 74 20 77 | 68 69 63 68 20 70 6f 69 |you at w|hich poi|
|00003ef0| 6e 74 20 6f 66 20 69 6e | 73 74 61 6e 74 69 61 74 |nt of in|stantiat|
|00003f00| 69 6f 6e 20 74 68 65 20 | 65 72 72 6f 72 20 6f 63 |ion the |error oc|
|00003f10| 63 75 72 72 65 64 2c 20 | 69 6e 0a 61 64 64 69 74 |curred, |in.addit|
|00003f20| 69 6f 6e 20 74 6f 20 6e | 6f 74 69 6e 67 20 74 68 |ion to n|oting th|
|00003f30| 65 20 6c 69 6e 65 20 69 | 6e 20 74 68 65 20 74 65 |e line i|n the te|
|00003f40| 6d 70 6c 61 74 65 20 64 | 65 63 6c 61 72 61 74 69 |mplate d|eclarati|
|00003f50| 6f 6e 20 77 68 69 63 68 | 20 68 61 64 20 74 68 65 |on which| had the|
|00003f60| 0a 61 63 74 75 61 6c 20 | 65 72 72 6f 72 2e 0a 0a |.actual |error...|
|00003f70| 0a 20 8f 20 54 68 65 20 | 73 79 6d 62 6f 6c 20 6e |. . The |symbol n|
|00003f80| 61 6d 65 73 20 66 6f 72 | 20 66 75 6e 63 74 69 6f |ames for| functio|
|00003f90| 6e 20 74 65 6d 70 6c 61 | 74 65 73 20 69 6e 20 74 |n templa|tes in t|
|00003fa0| 68 65 20 72 65 73 75 6c | 74 69 6e 67 20 61 73 73 |he resul|ting ass|
|00003fb0| 65 6d 62 6c 79 20 66 69 | 6c 65 0a 61 72 65 20 6e |embly fi|le.are n|
|00003fc0| 6f 77 20 65 6e 63 6f 64 | 65 64 20 61 63 63 6f 72 |ow encod|ed accor|
|00003fd0| 64 69 6e 67 20 74 6f 20 | 74 68 65 20 61 72 67 75 |ding to |the argu|
|00003fe0| 6d 65 6e 74 73 2c 20 72 | 61 74 68 65 72 20 74 68 |ments, r|ather th|
|00003ff0| 61 6e 20 6a 75 73 74 20 | 62 65 69 6e 67 0a 65 6d |an just |being.em|
|00004000| 69 74 74 65 64 20 61 73 | 2c 20 66 6f 72 20 65 78 |itted as|, for ex|
|00004010| 61 6d 70 6c 65 2c 20 74 | 77 6f 20 64 65 66 69 6e |ample, t|wo defin|
|00004020| 69 74 69 6f 6e 73 20 6f | 66 20 61 20 66 75 6e 63 |itions o|f a func|
|00004030| 74 69 6f 6e 20 7b 66 45 | 6d 70 68 61 73 69 73 7d |tion {fE|mphasis}|
|00004040| 66 6f 6f 7b 66 7d 2e 0a | 0a 0a 20 8f 20 54 65 6d |foo{f}..|.. . Tem|
|00004050| 70 6c 61 74 65 20 6d 65 | 6d 62 65 72 20 66 75 6e |plate me|mber fun|
|00004060| 63 74 69 6f 6e 73 20 74 | 68 61 74 20 61 72 65 20 |ctions t|hat are |
|00004070| 64 65 63 6c 61 72 65 64 | 20 7b 66 43 6f 64 65 7d |declared| {fCode}|
|00004080| 73 74 61 74 69 63 7b 66 | 7d 20 6e 6f 20 6c 6f 6e |static{f|} no lon|
|00004090| 67 65 72 0a 72 65 63 65 | 69 76 65 20 61 20 7b 66 |ger.rece|ive a {f|
|000040a0| 43 6f 64 65 7d 74 68 69 | 73 7b 66 7d 20 70 6f 69 |Code}thi|s{f} poi|
|000040b0| 6e 74 65 72 2e 0a 0a 0a | 20 8f 20 43 61 73 65 20 |nter....| . Case |
|000040c0| 6c 61 62 65 6c 73 20 61 | 72 65 20 6e 6f 20 6c 6f |labels a|re no lo|
|000040d0| 6e 67 65 72 20 61 6c 6c | 6f 77 65 64 20 74 6f 20 |nger all|owed to |
|000040e0| 68 61 76 65 20 63 6f 6d | 6d 61 73 20 74 6f 20 6d |have com|mas to m|
|000040f0| 61 6b 65 20 75 70 20 74 | 68 65 69 72 0a 65 78 70 |ake up t|heir.exp|
|00004100| 72 65 73 73 69 6f 6e 73 | 2e 0a 0a 0a 20 8f 20 57 |ressions|.... . W|
|00004110| 61 72 6e 69 6e 67 73 20 | 63 6f 6e 63 65 72 6e 69 |arnings |concerni|
|00004120| 6e 67 20 74 68 65 20 73 | 68 69 66 74 20 63 6f 75 |ng the s|hift cou|
|00004130| 6e 74 20 6f 66 20 61 20 | 6c 65 66 74 20 6f 72 20 |nt of a |left or |
|00004140| 72 69 67 68 74 20 73 68 | 69 66 74 20 6e 6f 77 20 |right sh|ift now |
|00004150| 74 65 6c 6c 0a 79 6f 75 | 20 69 66 20 69 74 20 77 |tell.you| if it w|
|00004160| 61 73 20 61 20 7b 66 45 | 6d 70 68 61 73 69 73 7d |as a {fE|mphasis}|
|00004170| 6c 65 66 74 7b 66 7d 20 | 6f 72 20 7b 66 45 6d 70 |left{f} |or {fEmp|
|00004180| 68 61 73 69 73 7d 72 69 | 67 68 74 7b 66 7d 20 73 |hasis}ri|ght{f} s|
|00004190| 68 69 66 74 2e 0a 0a 0a | 20 8f 20 54 68 65 20 63 |hift....| . The c|
|000041a0| 6f 6d 70 69 6c 65 72 20 | 6e 6f 77 20 77 61 72 6e |ompiler |now warn|
|000041b0| 73 20 77 68 65 6e 20 61 | 20 64 65 63 69 6d 61 6c |s when a| decimal|
|000041c0| 20 63 6f 6e 73 74 61 6e | 74 20 69 73 20 73 6f 20 | constan|t is so |
|000041d0| 6c 61 72 67 65 20 74 68 | 61 74 20 69 74 0a 62 65 |large th|at it.be|
|000041e0| 63 6f 6d 65 73 20 7b 66 | 43 6f 64 65 7d 75 6e 73 |comes {f|Code}uns|
|000041f0| 69 67 6e 65 64 7b 66 7d | 2e 0a 0a 0a 20 8f 20 55 |igned{f}|.... . U|
|00004200| 6e 69 6f 6e 20 69 6e 69 | 74 69 61 6c 69 7a 65 72 |nion ini|tializer|
|00004210| 73 20 77 68 69 63 68 20 | 61 72 65 20 72 61 77 20 |s which |are raw |
|00004220| 63 6f 6e 73 74 72 75 63 | 74 6f 72 73 20 61 72 65 |construc|tors are|
|00004230| 20 6e 6f 77 20 68 61 6e | 64 6c 65 64 20 70 72 6f | now han|dled pro|
|00004240| 70 65 72 6c 79 2e 0a 0a | 0a 20 8f 20 54 68 65 20 |perly...|. . The |
|00004250| 63 6f 6d 70 69 6c 65 72 | 20 6e 6f 20 6c 6f 6e 67 |compiler| no long|
|00004260| 65 72 20 67 69 76 65 73 | 20 69 6e 63 6f 72 72 65 |er gives| incorre|
|00004270| 63 74 20 65 72 72 6f 72 | 73 20 77 68 65 6e 20 69 |ct error|s when i|
|00004280| 6e 69 74 69 61 6c 69 7a | 69 6e 67 20 61 0a 75 6e |nitializ|ing a.un|
|00004290| 69 6f 6e 20 77 69 74 68 | 20 61 6e 20 65 6d 70 74 |ion with| an empt|
|000042a0| 79 20 69 6e 69 74 69 61 | 6c 69 7a 65 72 20 6c 69 |y initia|lizer li|
|000042b0| 73 74 2e 0a 0a 0a 20 8f | 20 41 6e 6f 6e 79 6d 6f |st.... .| Anonymo|
|000042c0| 75 73 20 75 6e 69 6f 6e | 73 20 61 72 65 20 6e 6f |us union|s are no|
|000042d0| 77 20 63 6f 72 72 65 63 | 74 6c 79 20 75 73 65 64 |w correc|tly used|
|000042e0| 20 77 68 65 6e 20 6e 65 | 73 74 65 64 20 69 6e 73 | when ne|sted ins|
|000042f0| 69 64 65 20 61 20 63 6c | 61 73 73 2e 0a 0a 0a 20 |ide a cl|ass.... |
|00004300| 8f 20 41 6e 6f 6e 79 6d | 6f 75 73 20 75 6e 69 6f |. Anonym|ous unio|
|00004310| 6e 73 20 64 65 63 6c 61 | 72 65 64 20 61 73 20 73 |ns decla|red as s|
|00004320| 74 61 74 69 63 20 63 6c | 61 73 73 20 6d 65 6d 62 |tatic cl|ass memb|
|00004330| 65 72 73 20 61 72 65 20 | 6e 6f 77 20 68 61 6e 64 |ers are |now hand|
|00004340| 6c 65 64 0a 70 72 6f 70 | 65 72 6c 79 2e 0a 0a 0a |led.prop|erly....|
|00004350| 20 8f 20 54 68 65 20 63 | 6f 6d 70 69 6c 65 72 20 | . The c|ompiler |
|00004360| 6e 6f 77 20 6e 6f 74 69 | 63 65 73 20 77 68 65 6e |now noti|ces when|
|00004370| 20 61 20 66 69 65 6c 64 | 20 69 6e 20 61 20 63 6c | a field| in a cl|
|00004380| 61 73 73 20 69 73 20 64 | 65 63 6c 61 72 65 64 20 |ass is d|eclared |
|00004390| 62 6f 74 68 20 61 73 0a | 61 20 74 79 70 65 20 61 |both as.|a type a|
|000043a0| 6e 64 20 61 20 6e 6f 6e | 2d 74 79 70 65 2e 0a 0a |nd a non|-type...|
|000043b0| 0a 20 8f 20 54 68 65 20 | 63 6f 6d 70 69 6c 65 72 |. . The |compiler|
|000043c0| 20 6e 6f 77 20 77 61 72 | 6e 73 20 77 68 65 6e 20 | now war|ns when |
|000043d0| 61 20 75 73 65 72 2d 64 | 65 66 69 6e 65 64 20 66 |a user-d|efined f|
|000043e0| 75 6e 63 74 69 6f 6e 20 | 73 68 61 64 6f 77 73 20 |unction |shadows |
|000043f0| 61 0a 62 75 69 6c 74 2d | 69 6e 20 66 75 6e 63 74 |a.built-|in funct|
|00004400| 69 6f 6e 2c 20 72 61 74 | 68 65 72 20 74 68 61 6e |ion, rat|her than|
|00004410| 20 65 6d 69 74 74 69 6e | 67 20 61 6e 20 65 72 72 | emittin|g an err|
|00004420| 6f 72 2e 0a 0a 0a 20 8f | 20 41 20 63 6f 6e 66 6c |or.... .| A confl|
|00004430| 69 63 74 20 62 65 74 77 | 65 65 6e 20 74 77 6f 20 |ict betw|een two |
|00004440| 66 75 6e 63 74 69 6f 6e | 20 64 65 63 6c 61 72 61 |function| declara|
|00004450| 74 69 6f 6e 73 20 6e 6f | 77 20 70 72 6f 64 75 63 |tions no|w produc|
|00004460| 65 73 20 61 6e 20 65 72 | 72 6f 72 0a 72 65 67 61 |es an er|ror.rega|
|00004470| 72 64 6c 65 73 73 20 6f | 66 20 74 68 65 69 72 20 |rdless o|f their |
|00004480| 6c 61 6e 67 75 61 67 65 | 20 63 6f 6e 74 65 78 74 |language| context|
|00004490| 2e 0a 0a 0a 20 8f 20 44 | 75 70 6c 69 63 61 74 65 |.... . D|uplicate|
|000044a0| 20 64 65 66 69 6e 69 74 | 69 6f 6e 73 20 6f 66 20 | definit|ions of |
|000044b0| 76 61 72 69 61 62 6c 65 | 73 20 77 69 74 68 20 7b |variable|s with {|
|000044c0| 66 45 6d 70 68 61 73 69 | 73 7d 65 78 74 65 72 6e |fEmphasi|s}extern|
|000044d0| 20 22 43 22 7b 66 7d 20 | 6c 69 6e 6b 61 67 65 20 | "C"{f} |linkage |
|000044e0| 61 72 65 20 6e 6f 0a 6c | 6f 6e 67 65 72 20 63 6f |are no.l|onger co|
|000044f0| 6e 73 69 64 65 72 65 64 | 20 69 6e 20 65 72 72 6f |nsidered| in erro|
|00004500| 72 2e 20 20 28 4e 6f 74 | 65 20 69 6e 20 43 2b 2b |r. (Not|e in C++|
|00004510| 20 6c 69 6e 6b 61 67 65 | 2d 2d 2d 74 68 65 20 64 | linkage|---the d|
|00004520| 65 66 61 75 6c 74 2d 2d | 2d 79 6f 75 20 6d 61 79 |efault--|-you may|
|00004530| 0a 6e 6f 74 20 68 61 76 | 65 20 6d 6f 72 65 20 74 |.not hav|e more t|
|00004540| 68 61 6e 20 6f 6e 65 20 | 64 65 66 69 6e 69 74 69 |han one |definiti|
|00004550| 6f 6e 20 6f 66 20 61 20 | 76 61 72 69 61 62 6c 65 |on of a |variable|
|00004560| 2e 29 0a 0a 0a 20 8f 20 | 52 65 66 65 72 65 6e 63 |.)... . |Referenc|
|00004570| 69 6e 67 20 61 20 6c 61 | 62 65 6c 20 74 68 61 74 |ing a la|bel that|
|00004580| 20 69 73 20 6e 6f 74 20 | 64 65 66 69 6e 65 64 20 | is not |defined |
|00004590| 69 6e 20 61 6e 79 20 66 | 75 6e 63 74 69 6f 6e 20 |in any f|unction |
|000045a0| 69 73 20 6e 6f 77 20 61 | 6e 20 65 72 72 6f 72 2e |is now a|n error.|
|000045b0| 0a 0a 0a 20 8f 20 54 68 | 65 20 73 79 6e 74 61 78 |... . Th|e syntax|
|000045c0| 20 66 6f 72 20 70 6f 69 | 6e 74 65 72 73 20 74 6f | for poi|nters to|
|000045d0| 20 6d 65 74 68 6f 64 73 | 20 68 61 73 20 62 65 65 | methods| has bee|
|000045e0| 6e 20 69 6d 70 72 6f 76 | 65 64 3b 20 74 68 65 72 |n improv|ed; ther|
|000045f0| 65 20 61 72 65 20 73 74 | 69 6c 6c 0a 73 6f 6d 65 |e are st|ill.some|
|00004600| 20 6d 69 6e 6f 72 20 62 | 75 67 73 2c 20 62 75 74 | minor b|ugs, but|
|00004610| 20 61 20 6e 75 6d 62 65 | 72 20 6f 66 20 63 61 73 | a numbe|r of cas|
|00004620| 65 73 20 73 68 6f 75 6c | 64 20 6e 6f 77 20 62 65 |es shoul|d now be|
|00004630| 20 61 63 63 65 70 74 65 | 64 20 62 79 20 74 68 65 | accepte|d by the|
|00004640| 0a 63 6f 6d 70 69 6c 65 | 72 2e 0a 0a 0a 20 8f 20 |.compile|r.... . |
|00004650| 49 6e 20 65 72 72 6f 72 | 20 6d 65 73 73 61 67 65 |In error| message|
|00004660| 73 2c 20 61 72 67 75 6d | 65 6e 74 73 20 61 72 65 |s, argum|ents are|
|00004670| 20 6e 6f 77 20 6e 75 6d | 62 65 72 65 64 20 73 74 | now num|bered st|
|00004680| 61 72 74 69 6e 67 20 61 | 74 20 31 2c 20 69 6e 73 |arting a|t 1, ins|
|00004690| 74 65 61 64 20 6f 66 0a | 30 2e 20 20 54 68 65 72 |tead of.|0. Ther|
|000046a0| 65 66 6f 72 65 2c 20 69 | 6e 20 74 68 65 20 66 75 |efore, i|n the fu|
|000046b0| 6e 63 74 69 6f 6e 20 7b | 66 45 6d 70 68 61 73 69 |nction {|fEmphasi|
|000046c0| 73 7d 76 6f 69 64 20 66 | 6f 6f 20 28 69 6e 74 20 |s}void f|oo (int |
|000046d0| 61 2c 20 69 6e 74 20 62 | 29 7b 66 7d 2c 20 74 68 |a, int b|){f}, th|
|000046e0| 65 0a 61 72 67 75 6d 65 | 6e 74 20 7b 66 45 6d 70 |e.argume|nt {fEmp|
|000046f0| 68 61 73 69 73 7d 61 7b | 66 7d 20 69 73 20 61 72 |hasis}a{|f} is ar|
|00004700| 67 75 6d 65 6e 74 20 31 | 2c 20 61 6e 64 20 7b 66 |gument 1|, and {f|
|00004710| 45 6d 70 68 61 73 69 73 | 7d 62 7b 66 7d 20 69 73 |Emphasis|}b{f} is|
|00004720| 20 61 72 67 75 6d 65 6e | 74 20 32 2e 20 20 54 68 | argumen|t 2. Th|
|00004730| 65 72 65 20 69 73 0a 6e | 6f 20 6c 6f 6e 67 65 72 |ere is.n|o longer|
|00004740| 20 61 6e 20 61 72 67 75 | 6d 65 6e 74 20 30 2e 0a | an argu|ment 0..|
|00004750| 0a 0a 20 8f 20 54 68 65 | 20 74 61 67 20 66 6f 72 |.. . The| tag for|
|00004760| 20 61 6e 20 65 6e 75 6d | 65 72 61 74 6f 72 2c 20 | an enum|erator, |
|00004770| 72 61 74 68 65 72 20 74 | 68 61 6e 20 69 74 73 20 |rather t|han its |
|00004780| 76 61 6c 75 65 2c 20 75 | 73 65 64 20 61 73 20 61 |value, u|sed as a|
|00004790| 20 64 65 66 61 75 6c 74 | 0a 61 72 67 75 6d 65 6e | default|.argumen|
|000047a0| 74 20 69 73 20 6e 6f 77 | 20 73 68 6f 77 6e 20 69 |t is now| shown i|
|000047b0| 6e 20 61 6c 6c 20 65 72 | 72 6f 72 20 6d 65 73 73 |n all er|ror mess|
|000047c0| 61 67 65 73 2e 20 20 46 | 6f 72 20 65 78 61 6d 70 |ages. F|or examp|
|000047d0| 6c 65 2c 20 7b 66 45 6d | 70 68 61 73 69 73 7d 76 |le, {fEm|phasis}v|
|000047e0| 6f 69 64 0a 66 6f 6f 20 | 28 65 6e 75 6d 20 78 20 |oid.foo |(enum x |
|000047f0| 28 3d 20 74 72 75 65 29 | 29 7b 66 7d 20 69 73 20 |(= true)|){f} is |
|00004800| 73 68 6f 77 6e 20 69 6e | 73 74 65 61 64 20 6f 66 |shown in|stead of|
|00004810| 20 7b 66 45 6d 70 68 61 | 73 69 73 7d 76 6f 69 64 | {fEmpha|sis}void|
|00004820| 20 66 6f 6f 20 28 65 6e | 75 6d 20 78 20 28 3d 0a | foo (en|um x (=.|
|00004830| 31 29 29 7b 66 7d 2e 0a | 0a 0a 20 8f 20 54 68 65 |1)){f}..|.. . The|
|00004840| 20 7b 66 45 6d 70 68 61 | 73 69 73 7d 5c 5f 5c 5f | {fEmpha|sis}\_\_|
|00004850| 61 73 6d 5c 5f 5c 5f 7b | 66 7d 20 6b 65 79 77 6f |asm\_\_{|f} keywo|
|00004860| 72 64 20 69 73 20 6e 6f | 77 20 61 63 63 65 70 74 |rd is no|w accept|
|00004870| 65 64 20 62 79 20 74 68 | 65 20 43 2b 2b 20 66 72 |ed by th|e C++ fr|
|00004880| 6f 6e 74 2d 65 6e 64 2e | 0a 0a 0a 20 8f 20 45 78 |ont-end.|... . Ex|
|00004890| 70 72 65 73 73 69 6f 6e | 73 20 6f 66 20 74 68 65 |pression|s of the|
|000048a0| 20 66 6f 72 6d 20 7b 66 | 45 6d 70 68 61 73 69 73 | form {f|Emphasis|
|000048b0| 7d 66 6f 6f 2d 5c 3e 7e | 43 6c 61 73 73 28 29 7b |}foo-\>~|Class(){|
|000048c0| 66 7d 20 61 72 65 20 6e | 6f 77 20 68 61 6e 64 6c |f} are n|ow handl|
|000048d0| 65 64 20 70 72 6f 70 65 | 72 6c 79 2e 0a 0a 0a 20 |ed prope|rly.... |
|000048e0| 8f 20 54 68 65 20 63 6f | 6d 70 69 6c 65 72 20 6e |. The co|mpiler n|
|000048f0| 6f 77 20 67 69 76 65 73 | 20 62 65 74 74 65 72 20 |ow gives| better |
|00004900| 77 61 72 6e 69 6e 67 73 | 20 66 6f 72 20 73 69 74 |warnings| for sit|
|00004910| 75 61 74 69 6f 6e 73 20 | 77 68 69 63 68 20 72 65 |uations |which re|
|00004920| 73 75 6c 74 20 69 6e 0a | 69 6e 74 65 67 65 72 20 |sult in.|integer |
|00004930| 6f 76 65 72 66 6c 6f 77 | 73 20 28 65 2e 67 2e 2c |overflow|s (e.g.,|
|00004940| 20 69 6e 20 73 74 6f 72 | 61 67 65 20 73 69 7a 65 | in stor|age size|
|00004950| 73 2c 20 65 6e 75 6d 65 | 72 61 74 6f 72 73 2c 20 |s, enume|rators, |
|00004960| 75 6e 61 72 79 0a 65 78 | 70 72 65 73 73 69 6f 6e |unary.ex|pression|
|00004970| 73 2c 20 65 74 63 29 2e | 0a 0a 0a 20 8f 20 7b 66 |s, etc).|... . {f|
|00004980| 43 6f 64 65 7d 75 6e 73 | 69 67 6e 65 64 7b 66 7d |Code}uns|igned{f}|
|00004990| 20 62 69 74 66 69 65 6c | 64 73 20 61 72 65 20 6e | bitfiel|ds are n|
|000049a0| 6f 77 20 70 72 6f 6d 6f | 74 65 64 20 74 6f 20 7b |ow promo|ted to {|
|000049b0| 66 43 6f 64 65 7d 73 69 | 67 6e 65 64 20 69 6e 74 |fCode}si|gned int|
|000049c0| 7b 66 7d 20 69 66 20 74 | 68 65 0a 66 69 65 6c 64 |{f} if t|he.field|
|000049d0| 20 69 73 6e 27 74 20 61 | 73 20 77 69 64 65 20 61 | isn't a|s wide a|
|000049e0| 73 20 61 6e 20 7b 66 43 | 6f 64 65 7d 69 6e 74 7b |s an {fC|ode}int{|
|000049f0| 66 7d 2e 0a 0a 0a 20 8f | 20 44 65 63 6c 61 72 61 |f}.... .| Declara|
|00004a00| 74 69 6f 6e 20 61 6e 64 | 20 75 73 61 67 65 20 6f |tion and| usage o|
|00004a10| 66 20 70 72 65 66 69 78 | 20 61 6e 64 20 70 6f 73 |f prefix| and pos|
|00004a20| 74 66 69 78 20 7b 66 45 | 6d 70 68 61 73 69 73 7d |tfix {fE|mphasis}|
|00004a30| 6f 70 65 72 61 74 6f 72 | 20 2b 2b 7b 66 7d 20 61 |operator| ++{f} a|
|00004a40| 6e 64 0a 7b 66 45 6d 70 | 68 61 73 69 73 7d 6f 70 |nd.{fEmp|hasis}op|
|00004a50| 65 72 61 74 6f 72 20 2d | 2d 7b 66 7d 20 61 72 65 |erator -|-{f} are|
|00004a60| 20 6e 6f 77 20 68 61 6e | 64 6c 65 64 20 63 6f 72 | now han|dled cor|
|00004a70| 72 65 63 74 6c 79 2e 20 | 20 46 6f 72 20 65 78 61 |rectly. | For exa|
|00004a80| 6d 70 6c 65 2c 0a 0a 23 | 57 72 61 70 20 6f 66 66 |mple,..#|Wrap off|
|00004a90| 0a 23 66 43 6f 64 65 0a | 63 6c 61 73 73 20 66 6f |.#fCode.|class fo|
|00004aa0| 6f 0a 5c 7b 0a 70 75 62 | 6c 69 63 3a 0a 20 20 6f |o.\{.pub|lic:. o|
|00004ab0| 70 65 72 61 74 6f 72 20 | 2b 2b 20 28 29 3b 0a 20 |perator |++ ();. |
|00004ac0| 20 6f 70 65 72 61 74 6f | 72 20 2b 2b 20 28 69 6e | operato|r ++ (in|
|00004ad0| 74 29 3b 0a 20 20 6f 70 | 65 72 61 74 6f 72 20 2d |t);. op|erator -|
|00004ae0| 2d 20 28 29 3b 0a 20 20 | 6f 70 65 72 61 74 6f 72 |- ();. |operator|
|00004af0| 20 2d 2d 20 28 69 6e 74 | 29 3b 0a 5c 7d 3b 0a 0a | -- (int|);.\};..|
|00004b00| 76 6f 69 64 0a 66 20 28 | 66 6f 6f 20 5c 2a 66 29 |void.f (|foo \*f)|
|00004b10| 0a 5c 7b 0a 20 20 66 2b | 2b 3b 20 20 20 20 20 20 |.\{. f+|+; |
|00004b20| 20 20 20 20 5c 2f 5c 2f | 20 63 61 6c 6c 20 7b 66 | \/\/| call {f|
|00004b30| 43 6f 64 65 7d 66 2d 5c | 3e 6f 70 65 72 61 74 6f |Code}f-\|>operato|
|00004b40| 72 2b 2b 28 69 6e 74 29 | 7b 66 7d 0a 20 20 2b 2b |r++(int)|{f}. ++|
|00004b50| 66 3b 20 20 20 20 20 20 | 20 20 20 20 5c 2f 5c 2f |f; | \/\/|
|00004b60| 20 63 61 6c 6c 20 7b 66 | 43 6f 64 65 7d 66 2d 5c | call {f|Code}f-\|
|00004b70| 3e 6f 70 65 72 61 74 6f | 72 2b 2b 28 29 7b 66 7d |>operato|r++(){f}|
|00004b80| 0a 20 20 66 2d 2d 3b 20 | 20 20 20 20 20 20 20 20 |. f--; | |
|00004b90| 20 5c 2f 5c 2f 20 63 61 | 6c 6c 20 7b 66 43 6f 64 | \/\/ ca|ll {fCod|
|00004ba0| 65 7d 66 2d 5c 3e 6f 70 | 65 72 61 74 6f 72 2b 2b |e}f-\>op|erator++|
|00004bb0| 28 69 6e 74 29 7b 66 7d | 0a 20 20 2d 2d 66 3b 20 |(int){f}|. --f; |
|00004bc0| 20 20 20 20 20 20 20 20 | 20 5c 2f 5c 2f 20 63 61 | | \/\/ ca|
|00004bd0| 6c 6c 20 7b 66 43 6f 64 | 65 7d 66 2d 5c 3e 6f 70 |ll {fCod|e}f-\>op|
|00004be0| 65 72 61 74 6f 72 2b 2b | 28 29 7b 66 7d 0a 5c 7d |erator++|(){f}.\}|
|00004bf0| 0a 23 66 0a 23 57 72 61 | 70 20 6f 6e 0a 0a 0a 20 |.#f.#Wra|p on... |
|00004c00| 8f 20 49 6e 20 61 63 63 | 6f 72 64 61 6e 63 65 20 |. In acc|ordance |
|00004c10| 77 69 74 68 20 41 52 4d | 20 73 65 63 74 69 6f 6e |with ARM| section|
|00004c20| 20 31 30 2e 31 2e 31 2c | 20 61 6d 62 69 67 75 69 | 10.1.1,| ambigui|
|00004c30| 74 69 65 73 20 61 6e 64 | 20 64 6f 6d 69 6e 61 6e |ties and| dominan|
|00004c40| 63 65 20 61 72 65 20 6e | 6f 77 0a 68 61 6e 64 6c |ce are n|ow.handl|
|00004c50| 65 64 20 70 72 6f 70 65 | 72 6c 79 2e 20 20 54 68 |ed prope|rly. Th|
|00004c60| 65 20 72 75 6c 65 73 20 | 64 65 73 63 72 69 62 65 |e rules |describe|
|00004c70| 64 20 69 6e 20 73 65 63 | 74 69 6f 6e 20 31 30 2e |d in sec|tion 10.|
|00004c80| 31 2e 31 20 61 72 65 20 | 6e 6f 77 20 66 75 6c 6c |1.1 are |now full|
|00004c90| 79 0a 69 6d 70 6c 65 6d | 65 6e 74 65 64 2e 20 0a |y.implem|ented. .|
|00004ca0| 0a 0a 23 49 6e 64 65 6e | 74 0a 0a 72 44 41 54 41 |..#Inden|t..rDATA|
|00004cb0| ed 09 00 00 46 75 6e 63 | 74 69 6f 6e 20 74 65 6d |....Func|tion tem|
|00004cc0| 70 6c 61 74 65 73 0a 50 | 72 65 76 69 6f 75 73 3a |plates.P|revious:|
|00004cd0| 20 3c 54 65 6d 70 6c 61 | 74 65 20 6c 69 6d 69 74 | <Templa|te limit|
|00004ce0| 61 74 69 6f 6e 73 3d 3e | 54 65 6d 70 6c 61 74 65 |ations=>|Template|
|00004cf0| 6c 69 3e 20 2a 20 4e 65 | 78 74 3a 20 3c 43 6c 61 |li> * Ne|xt: <Cla|
|00004d00| 73 73 20 74 65 6d 70 6c | 61 74 65 73 3d 3e 43 6c |ss templ|ates=>Cl|
|00004d10| 61 73 73 74 65 6d 70 6c | 3e 20 2a 20 55 70 3a 20 |asstempl|> * Up: |
|00004d20| 3c 54 65 6d 70 6c 61 74 | 65 73 3d 3e 54 65 6d 70 |<Templat|es=>Temp|
|00004d30| 6c 61 74 65 73 3e 0a 0a | 23 57 72 61 70 20 6f 6e |lates>..|#Wrap on|
|00004d40| 0a 7b 66 48 33 7d 4c 69 | 6d 69 74 61 74 69 6f 6e |.{fH3}Li|mitation|
|00004d50| 73 20 66 6f 72 20 66 75 | 6e 63 74 69 6f 6e 20 74 |s for fu|nction t|
|00004d60| 65 6d 70 6c 61 74 65 73 | 7b 66 7d 0a 0a 46 75 6e |emplates|{f}..Fun|
|00004d70| 63 74 69 6f 6e 20 74 65 | 6d 70 6c 61 74 65 73 20 |ction te|mplates |
|00004d80| 61 72 65 20 69 6d 70 6c | 65 6d 65 6e 74 65 64 20 |are impl|emented |
|00004d90| 66 6f 72 20 74 68 65 20 | 6d 6f 73 74 20 70 61 72 |for the |most par|
|00004da0| 74 2e 20 20 54 68 65 20 | 63 6f 6d 70 69 6c 65 72 |t. The |compiler|
|00004db0| 20 63 61 6e 0a 63 6f 72 | 72 65 63 74 6c 79 20 64 | can.cor|rectly d|
|00004dc0| 65 74 65 72 6d 69 6e 65 | 20 74 65 6d 70 6c 61 74 |etermine| templat|
|00004dd0| 65 20 70 61 72 61 6d 65 | 74 65 72 20 76 61 6c 75 |e parame|ter valu|
|00004de0| 65 73 2c 20 61 6e 64 20 | 77 69 6c 6c 20 64 65 6c |es, and |will del|
|00004df0| 61 79 0a 69 6e 73 74 61 | 6e 74 69 61 74 69 6f 6e |ay.insta|ntiation|
|00004e00| 20 6f 66 20 61 20 66 75 | 6e 63 74 69 6f 6e 20 74 | of a fu|nction t|
|00004e10| 68 61 74 20 75 73 65 73 | 20 74 65 6d 70 6c 61 74 |hat uses| templat|
|00004e20| 65 73 20 75 6e 74 69 6c | 20 74 68 65 20 72 65 71 |es until| the req|
|00004e30| 75 69 73 69 74 65 20 74 | 79 70 65 0a 69 6e 66 6f |uisite t|ype.info|
|00004e40| 72 6d 61 74 69 6f 6e 20 | 69 73 20 61 76 61 69 6c |rmation |is avail|
|00004e50| 61 62 6c 65 2e 0a 0a 54 | 68 65 20 66 6f 6c 6c 6f |able...T|he follo|
|00004e60| 77 69 6e 67 20 6c 69 6d | 69 74 61 74 69 6f 6e 73 |wing lim|itations|
|00004e70| 20 72 65 6d 61 69 6e 3a | 20 0a 0a 23 49 6e 64 65 | remain:| ..#Inde|
|00004e80| 6e 74 20 2b 34 0a 0a 20 | 8f 20 4e 61 72 72 6f 77 |nt +4.. |. Narrow|
|00004e90| 65 64 20 73 70 65 63 69 | 66 69 63 61 74 69 6f 6e |ed speci|fication|
|00004ea0| 3a 20 66 75 6e 63 74 69 | 6f 6e 20 64 65 63 6c 61 |: functi|on decla|
|00004eb0| 72 61 74 69 6f 6e 73 20 | 73 68 6f 75 6c 64 20 6e |rations |should n|
|00004ec0| 6f 74 20 70 72 65 76 65 | 6e 74 0a 74 65 6d 70 6c |ot preve|nt.templ|
|00004ed0| 61 74 65 20 65 78 70 61 | 6e 73 69 6f 6e 2e 20 20 |ate expa|nsion. |
|00004ee0| 57 68 65 6e 20 79 6f 75 | 20 64 65 63 6c 61 72 65 |When you| declare|
|00004ef0| 20 61 20 66 75 6e 63 74 | 69 6f 6e 2c 20 47 4e 55 | a funct|ion, GNU|
|00004f00| 20 43 2b 2b 0a 69 6e 74 | 65 72 70 72 65 74 73 20 | C++.int|erprets |
|00004f10| 74 68 65 20 64 65 63 6c | 61 72 61 74 69 6f 6e 20 |the decl|aration |
|00004f20| 61 73 20 61 6e 20 69 6e | 64 69 63 61 74 69 6f 6e |as an in|dication|
|00004f30| 20 74 68 61 74 20 79 6f | 75 20 77 69 6c 6c 20 70 | that yo|u will p|
|00004f40| 72 6f 76 69 64 65 20 61 | 0a 64 65 66 69 6e 69 74 |rovide a|.definit|
|00004f50| 69 6f 6e 20 66 6f 72 20 | 74 68 61 74 20 66 75 6e |ion for |that fun|
|00004f60| 63 74 69 6f 6e 2e 20 20 | 54 68 65 72 65 66 6f 72 |ction. |Therefor|
|00004f70| 65 2c 20 47 4e 55 20 43 | 2b 2b 20 64 6f 65 73 20 |e, GNU C|++ does |
|00004f80| 6e 6f 74 20 75 73 65 20 | 61 0a 74 65 6d 70 6c 61 |not use |a.templa|
|00004f90| 74 65 20 65 78 70 61 6e | 73 69 6f 6e 20 69 66 20 |te expan|sion if |
|00004fa0| 74 68 65 72 65 20 69 73 | 20 61 6c 73 6f 20 61 6e |there is| also an|
|00004fb0| 20 61 70 70 6c 69 63 61 | 62 6c 65 20 64 65 63 6c | applica|ble decl|
|00004fc0| 61 72 61 74 69 6f 6e 2e | 20 20 47 4e 55 0a 43 2b |aration.| GNU.C+|
|00004fd0| 2b 20 6f 6e 6c 79 20 65 | 78 70 61 6e 64 73 20 74 |+ only e|xpands t|
|00004fe0| 68 65 20 74 65 6d 70 6c | 61 74 65 20 77 68 65 6e |he templ|ate when|
|00004ff0| 20 74 68 65 72 65 20 69 | 73 20 6e 6f 20 73 75 63 | there i|s no suc|
|00005000| 68 20 64 65 63 6c 61 72 | 61 74 69 6f 6e 2e 0a 0a |h declar|ation...|
|00005010| 54 68 65 20 73 70 65 63 | 69 66 69 63 61 74 69 6f |The spec|ificatio|
|00005020| 6e 20 69 6e 20 42 6a 61 | 72 6e 65 20 53 74 72 6f |n in Bja|rne Stro|
|00005030| 75 73 74 72 75 70 27 73 | 20 7b 66 43 69 74 65 7d |ustrup's| {fCite}|
|00005040| 54 68 65 20 43 2b 2b 20 | 50 72 6f 67 72 61 6d 6d |The C++ |Programm|
|00005050| 69 6e 67 0a 4c 61 6e 67 | 75 61 67 65 2c 20 53 65 |ing.Lang|uage, Se|
|00005060| 63 6f 6e 64 20 45 64 69 | 74 69 6f 6e 7b 66 7d 20 |cond Edi|tion{f} |
|00005070| 69 73 20 6e 61 72 72 6f | 77 65 72 2c 20 61 6e 64 |is narro|wer, and|
|00005080| 20 74 68 65 20 47 4e 55 | 20 43 2b 2b 0a 69 6d 70 | the GNU| C++.imp|
|00005090| 6c 65 6d 65 6e 74 61 74 | 69 6f 6e 20 69 73 20 6e |lementat|ion is n|
|000050a0| 6f 77 20 63 6c 65 61 72 | 6c 79 20 69 6e 63 6f 72 |ow clear|ly incor|
|000050b0| 72 65 63 74 2e 20 20 57 | 69 74 68 20 74 68 69 73 |rect. W|ith this|
|000050c0| 20 6e 65 77 20 73 70 65 | 63 69 66 69 63 61 74 69 | new spe|cificati|
|000050d0| 6f 6e 2c 20 61 0a 64 65 | 63 6c 61 72 61 74 69 6f |on, a.de|claratio|
|000050e0| 6e 20 74 68 61 74 20 63 | 6f 72 72 65 73 70 6f 6e |n that c|orrespon|
|000050f0| 64 73 20 74 6f 20 61 6e | 20 69 6e 73 74 61 6e 74 |ds to an| instant|
|00005100| 69 61 74 69 6f 6e 20 6f | 66 20 61 20 66 75 6e 63 |iation o|f a func|
|00005110| 74 69 6f 6e 20 74 65 6d | 70 6c 61 74 65 0a 6f 6e |tion tem|plate.on|
|00005120| 6c 79 20 61 66 66 65 63 | 74 73 20 77 68 65 74 68 |ly affec|ts wheth|
|00005130| 65 72 20 63 6f 6e 76 65 | 72 73 69 6f 6e 73 20 61 |er conve|rsions a|
|00005140| 72 65 20 6e 65 65 64 65 | 64 20 74 6f 20 75 73 65 |re neede|d to use|
|00005150| 20 74 68 61 74 20 76 65 | 72 73 69 6f 6e 20 6f 66 | that ve|rsion of|
|00005160| 20 74 68 65 0a 66 75 6e | 63 74 69 6f 6e 2e 20 20 | the.fun|ction. |
|00005170| 49 74 20 73 68 6f 75 6c | 64 20 6e 6f 20 6c 6f 6e |It shoul|d no lon|
|00005180| 67 65 72 20 70 72 65 76 | 65 6e 74 20 65 78 70 61 |ger prev|ent expa|
|00005190| 6e 73 69 6f 6e 20 6f 66 | 20 74 68 65 20 74 65 6d |nsion of| the tem|
|000051a0| 70 6c 61 74 65 0a 64 65 | 66 69 6e 69 74 69 6f 6e |plate.de|finition|
|000051b0| 2e 0a 0a 46 6f 72 20 65 | 78 61 6d 70 6c 65 2c 20 |...For e|xample, |
|000051c0| 74 68 69 73 20 63 6f 64 | 65 20 66 72 61 67 6d 65 |this cod|e fragme|
|000051d0| 6e 74 20 6d 75 73 74 20 | 62 65 20 74 72 65 61 74 |nt must |be treat|
|000051e0| 65 64 20 64 69 66 66 65 | 72 65 6e 74 6c 79 3a 0a |ed diffe|rently:.|
|000051f0| 0a 23 57 72 61 70 20 6f | 66 66 0a 23 66 43 6f 64 |.#Wrap o|ff.#fCod|
|00005200| 65 0a 74 65 6d 70 6c 61 | 74 65 20 5c 3c 63 6c 61 |e.templa|te \<cla|
|00005210| 73 73 20 58 5c 3e 20 58 | 20 6d 69 6e 20 28 58 26 |ss X\> X| min (X&|
|00005220| 20 78 31 2c 20 58 26 20 | 78 32 29 20 5c 7b 20 8c | x1, X& |x2) \{ .|
|00005230| 20 5c 7d 0a 69 6e 74 20 | 6d 69 6e 20 28 69 6e 74 | \}.int |min (int|
|00005240| 2c 20 69 6e 74 29 3b 0a | 8c 0a 69 6e 74 20 69 3b |, int);.|..int i;|
|00005250| 20 73 68 6f 72 74 20 73 | 3b 0a 6d 69 6e 20 28 69 | short s|;.min (i|
|00005260| 2c 20 73 29 3b 20 5c 2f | 5c 2f 20 73 68 6f 75 6c |, s); \/|\/ shoul|
|00005270| 64 20 63 61 6c 6c 20 6d | 69 6e 28 69 6e 74 2c 69 |d call m|in(int,i|
|00005280| 6e 74 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |nt). | |
|00005290| 5c 2f 5c 2f 20 64 65 72 | 69 76 65 64 20 66 72 6f |\/\/ der|ived fro|
|000052a0| 6d 20 74 65 6d 70 6c 61 | 74 65 0a 8c 0a 23 66 0a |m templa|te...#f.|
|000052b0| 23 57 72 61 70 20 6f 6e | 0a 0a 0a 20 8f 20 54 68 |#Wrap on|... . Th|
|000052c0| 65 20 63 6f 6d 70 69 6c | 65 72 20 64 6f 65 73 20 |e compil|er does |
|000052d0| 6e 6f 74 20 79 65 74 20 | 75 6e 64 65 72 73 74 61 |not yet |understa|
|000052e0| 6e 64 20 66 75 6e 63 74 | 69 6f 6e 20 73 69 67 6e |nd funct|ion sign|
|000052f0| 61 74 75 72 65 73 20 77 | 68 65 72 65 20 74 79 70 |atures w|here typ|
|00005300| 65 73 20 61 72 65 0a 6e | 65 73 74 65 64 20 77 69 |es are.n|ested wi|
|00005310| 74 68 69 6e 20 74 65 6d | 70 6c 61 74 65 20 70 61 |thin tem|plate pa|
|00005320| 72 61 6d 65 74 65 72 73 | 2e 20 20 46 6f 72 20 65 |rameters|. For e|
|00005330| 78 61 6d 70 6c 65 2c 20 | 61 20 66 75 6e 63 74 69 |xample, |a functi|
|00005340| 6f 6e 20 6c 69 6b 65 20 | 74 68 65 0a 66 6f 6c 6c |on like |the.foll|
|00005350| 6f 77 69 6e 67 20 70 72 | 6f 64 75 63 65 73 20 61 |owing pr|oduces a|
|00005360| 20 73 79 6e 74 61 78 20 | 65 72 72 6f 72 20 6f 6e | syntax |error on|
|00005370| 20 74 68 65 20 63 6c 6f | 73 69 6e 67 20 7b 66 45 | the clo|sing {fE|
|00005380| 6d 70 68 61 73 69 73 7d | 29 7b 66 7d 20 6f 66 20 |mphasis}|){f} of |
|00005390| 74 68 65 0a 64 65 66 69 | 6e 69 74 69 6f 6e 20 6f |the.defi|nition o|
|000053a0| 66 20 74 68 65 20 66 75 | 6e 63 74 69 6f 6e 20 7b |f the fu|nction {|
|000053b0| 66 43 6f 64 65 7d 66 7b | 66 7d 3a 0a 0a 23 57 72 |fCode}f{|f}:..#Wr|
|000053c0| 61 70 20 6f 66 66 0a 23 | 66 43 6f 64 65 0a 74 65 |ap off.#|fCode.te|
|000053d0| 6d 70 6c 61 74 65 20 5c | 3c 63 6c 61 73 73 20 54 |mplate \|<class T|
|000053e0| 5c 3e 20 63 6c 61 73 73 | 20 41 20 5c 7b 20 70 75 |\> class| A \{ pu|
|000053f0| 62 6c 69 63 3a 20 54 20 | 78 3b 20 63 6c 61 73 73 |blic: T |x; class|
|00005400| 20 59 20 5c 7b 5c 7d 3b | 20 5c 7d 3b 0a 74 65 6d | Y \{\};| \};.tem|
|00005410| 70 6c 61 74 65 20 5c 3c | 63 6c 61 73 73 20 58 5c |plate \<|class X\|
|00005420| 3e 20 69 6e 74 20 66 20 | 28 41 5c 3c 58 5c 3e 3a |> int f |(A\<X\>:|
|00005430| 3a 59 20 79 29 20 5c 7b | 20 8c 20 5c 7d 0a 23 66 |:Y y) \{| . \}.#f|
|00005440| 0a 23 57 72 61 70 20 6f | 6e 0a 0a 0a 20 8f 20 49 |.#Wrap o|n... . I|
|00005450| 66 20 79 6f 75 20 64 65 | 63 6c 61 72 65 20 61 6e |f you de|clare an|
|00005460| 20 7b 66 43 6f 64 65 7d | 69 6e 6c 69 6e 65 7b 66 | {fCode}|inline{f|
|00005470| 7d 20 66 75 6e 63 74 69 | 6f 6e 20 75 73 69 6e 67 |} functi|on using|
|00005480| 20 74 65 6d 70 6c 61 74 | 65 73 2c 20 74 68 65 20 | templat|es, the |
|00005490| 63 6f 6d 70 69 6c 65 72 | 0a 63 61 6e 20 6f 6e 6c |compiler|.can onl|
|000054a0| 79 20 69 6e 6c 69 6e 65 | 20 74 68 65 20 63 6f 64 |y inline| the cod|
|000054b0| 65 20 7b 66 45 6d 70 68 | 61 73 69 73 7d 61 66 74 |e {fEmph|asis}aft|
|000054c0| 65 72 7b 66 7d 20 74 68 | 65 20 66 69 72 73 74 20 |er{f} th|e first |
|000054d0| 74 69 6d 65 20 79 6f 75 | 20 75 73 65 0a 74 68 61 |time you| use.tha|
|000054e0| 74 20 66 75 6e 63 74 69 | 6f 6e 20 77 69 74 68 20 |t functi|on with |
|000054f0| 77 68 61 74 65 76 65 72 | 20 70 61 72 74 69 63 75 |whatever| particu|
|00005500| 6c 61 72 20 74 79 70 65 | 20 73 69 67 6e 61 74 75 |lar type| signatu|
|00005510| 72 65 20 74 68 65 20 74 | 65 6d 70 6c 61 74 65 0a |re the t|emplate.|
|00005520| 77 61 73 20 69 6e 73 74 | 61 6e 74 69 61 74 65 64 |was inst|antiated|
|00005530| 2e 0a 0a 52 65 6d 6f 76 | 69 6e 67 20 74 68 69 73 |...Remov|ing this|
|00005540| 20 6c 69 6d 69 74 61 74 | 69 6f 6e 20 69 73 20 61 | limitat|ion is a|
|00005550| 6b 69 6e 20 74 6f 20 73 | 75 70 70 6f 72 74 69 6e |kin to s|upportin|
|00005560| 67 20 6e 65 73 74 65 64 | 20 66 75 6e 63 74 69 6f |g nested| functio|
|00005570| 6e 0a 64 65 66 69 6e 69 | 74 69 6f 6e 73 20 69 6e |n.defini|tions in|
|00005580| 20 47 4e 55 20 43 2b 2b | 3b 20 74 68 65 20 6c 69 | GNU C++|; the li|
|00005590| 6d 69 74 61 74 69 6f 6e | 20 77 69 6c 6c 20 70 72 |mitation| will pr|
|000055a0| 6f 62 61 62 6c 79 20 72 | 65 6d 61 69 6e 20 75 6e |obably r|emain un|
|000055b0| 74 69 6c 20 74 68 65 0a | 6d 6f 72 65 20 67 65 6e |til the.|more gen|
|000055c0| 65 72 61 6c 20 70 72 6f | 62 6c 65 6d 20 6f 66 20 |eral pro|blem of |
|000055d0| 6e 65 73 74 65 64 20 66 | 75 6e 63 74 69 6f 6e 73 |nested f|unctions|
|000055e0| 20 69 73 20 73 6f 6c 76 | 65 64 2e 0a 0a 0a 20 8f | is solv|ed.... .|
|000055f0| 20 41 6c 6c 20 74 68 65 | 20 7b 66 45 6d 70 68 61 | All the| {fEmpha|
|00005600| 73 69 73 7d 6d 65 74 68 | 6f 64 7b 66 7d 20 74 65 |sis}meth|od{f} te|
|00005610| 6d 70 6c 61 74 65 73 20 | 28 74 65 6d 70 6c 61 74 |mplates |(templat|
|00005620| 65 73 20 66 6f 72 20 6d | 65 6d 62 65 72 20 66 75 |es for m|ember fu|
|00005630| 6e 63 74 69 6f 6e 73 29 | 20 66 6f 72 20 61 0a 63 |nctions)| for a.c|
|00005640| 6c 61 73 73 20 6d 75 73 | 74 20 62 65 20 76 69 73 |lass mus|t be vis|
|00005650| 69 62 6c 65 20 74 6f 20 | 74 68 65 20 63 6f 6d 70 |ible to |the comp|
|00005660| 69 6c 65 72 20 77 68 65 | 6e 20 74 68 65 20 63 6c |iler whe|n the cl|
|00005670| 61 73 73 20 74 65 6d 70 | 6c 61 74 65 20 69 73 0a |ass temp|late is.|
|00005680| 69 6e 73 74 61 6e 74 69 | 61 74 65 64 2e 20 0a 0a |instanti|ated. ..|
|00005690| 23 49 6e 64 65 6e 74 0a | 0a 00 00 00 44 41 54 41 |#Indent.|....DATA|
|000056a0| e5 08 00 00 49 6e 74 72 | 6f 64 75 63 74 69 6f 6e |....Intr|oduction|
|000056b0| 0a 50 72 65 76 69 6f 75 | 73 3a 20 3c 54 6f 70 3d |.Previou|s: <Top=|
|000056c0| 3e 21 52 6f 6f 74 3e 20 | 2a 20 4e 65 78 74 3a 20 |>!Root> |* Next: |
|000056d0| 3c 43 68 61 6e 67 65 73 | 3d 3e 43 68 61 6e 67 65 |<Changes|=>Change|
|000056e0| 73 3e 20 2a 20 55 70 3a | 20 3c 54 6f 70 3d 3e 21 |s> * Up:| <Top=>!|
|000056f0| 52 6f 6f 74 3e 0a 0a 23 | 57 72 61 70 20 6f 6e 0a |Root>..#|Wrap on.|
|00005700| 7b 66 48 32 7d 49 6e 74 | 72 6f 64 75 63 74 69 6f |{fH2}Int|roductio|
|00005710| 6e 7b 66 7d 0a 0a 41 73 | 20 79 6f 75 20 6d 61 79 |n{f}..As| you may|
|00005720| 20 72 65 6d 65 6d 62 65 | 72 2c 20 47 4e 55 20 43 | remembe|r, GNU C|
|00005730| 2b 2b 20 77 61 73 20 74 | 68 65 20 66 69 72 73 74 |++ was t|he first|
|00005740| 20 6e 61 74 69 76 65 2d | 63 6f 64 65 20 43 2b 2b | native-|code C++|
|00005750| 0a 63 6f 6d 70 69 6c 65 | 72 20 61 76 61 69 6c 61 |.compile|r availa|
|00005760| 62 6c 65 20 75 6e 64 65 | 72 20 55 6e 69 78 20 28 |ble unde|r Unix (|
|00005770| 44 65 63 65 6d 62 65 72 | 20 31 39 38 37 29 2e 20 |December| 1987). |
|00005780| 20 49 6e 20 4e 6f 76 65 | 6d 62 65 72 20 31 39 38 | In Nove|mber 198|
|00005790| 38 2c 20 69 74 20 77 61 | 73 0a 6a 75 64 67 65 64 |8, it wa|s.judged|
|000057a0| 20 73 75 70 65 72 69 6f | 72 20 74 6f 20 74 68 65 | superio|r to the|
|000057b0| 20 41 54 26 54 20 63 6f | 6d 70 69 6c 65 72 20 69 | AT&T co|mpiler i|
|000057c0| 6e 20 61 20 55 6e 69 78 | 20 57 6f 72 6c 64 20 72 |n a Unix| World r|
|000057d0| 65 76 69 65 77 2e 20 20 | 49 6e 20 31 39 39 30 20 |eview. |In 1990 |
|000057e0| 69 74 0a 77 6f 6e 20 61 | 20 53 75 6e 20 4f 62 73 |it.won a| Sun Obs|
|000057f0| 65 72 76 65 72 20 60 60 | 42 65 73 74 2d 4f 66 27 |erver ``|Best-Of'|
|00005800| 27 20 61 77 61 72 64 2e | 20 20 42 75 74 20 6e 6f |' award.| But no|
|00005810| 77 2c 20 77 69 74 68 20 | 6e 65 77 20 72 65 71 75 |w, with |new requ|
|00005820| 69 72 65 6d 65 6e 74 73 | 0a 63 6f 6d 69 6e 67 20 |irements|.coming |
|00005830| 6f 75 74 20 6f 66 20 74 | 68 65 20 41 4e 53 49 20 |out of t|he ANSI |
|00005840| 43 2b 2b 20 63 6f 6d 6d | 69 74 74 65 65 20 61 6e |C++ comm|ittee an|
|00005850| 64 20 61 20 67 72 6f 77 | 69 6e 67 20 62 61 63 6b |d a grow|ing back|
|00005860| 6c 6f 67 20 6f 66 20 62 | 75 67 73 2c 20 69 74 27 |log of b|ugs, it'|
|00005870| 73 0a 63 6c 65 61 72 20 | 74 68 61 74 20 47 4e 55 |s.clear |that GNU|
|00005880| 20 43 2b 2b 20 6e 65 65 | 64 73 20 61 6e 20 6f 76 | C++ nee|ds an ov|
|00005890| 65 72 68 61 75 6c 2e 0a | 0a 54 68 65 20 43 2b 2b |erhaul..|.The C++|
|000058a0| 20 6c 61 6e 67 75 61 67 | 65 20 68 61 73 20 62 65 | languag|e has be|
|000058b0| 65 6e 20 75 6e 64 65 72 | 20 64 65 76 65 6c 6f 70 |en under| develop|
|000058c0| 6d 65 6e 74 20 73 69 6e | 63 65 20 31 39 38 32 2e |ment sin|ce 1982.|
|000058d0| 20 20 49 74 20 68 61 73 | 0a 65 76 6f 6c 76 65 64 | It has|.evolved|
|000058e0| 20 73 69 67 6e 69 66 69 | 63 61 6e 74 6c 79 20 73 | signifi|cantly s|
|000058f0| 69 6e 63 65 20 69 74 73 | 20 6f 72 69 67 69 6e 61 |ince its| origina|
|00005900| 6c 20 69 6e 63 61 72 6e | 61 74 69 6f 6e 20 28 43 |l incarn|ation (C|
|00005910| 20 77 69 74 68 20 43 6c | 61 73 73 65 73 29 2c 0a | with Cl|asses),.|
|00005920| 61 64 64 72 65 73 73 69 | 6e 67 20 6d 61 6e 79 20 |addressi|ng many |
|00005930| 63 6f 6d 6d 65 72 63 69 | 61 6c 20 6e 65 65 64 73 |commerci|al needs|
|00005940| 20 61 6e 64 20 69 6e 63 | 6f 72 70 6f 72 61 74 69 | and inc|orporati|
|00005950| 6e 67 20 6d 61 6e 79 20 | 6c 65 73 73 6f 6e 73 0a |ng many |lessons.|
|00005960| 6c 65 61 72 6e 65 64 20 | 61 73 20 6d 6f 72 65 20 |learned |as more |
|00005970| 61 6e 64 20 6d 6f 72 65 | 20 70 65 6f 70 6c 65 20 |and more| people |
|00005980| 73 74 61 72 74 65 64 20 | 75 73 69 6e 67 20 60 60 |started |using ``|
|00005990| 6f 62 6a 65 63 74 2d 6f | 72 69 65 6e 74 65 64 27 |object-o|riented'|
|000059a0| 27 0a 70 72 6f 67 72 61 | 6d 6d 69 6e 67 20 74 65 |'.progra|mming te|
|000059b0| 63 68 6e 69 71 75 65 73 | 2e 20 20 49 6e 20 31 39 |chniques|. In 19|
|000059c0| 38 39 2c 20 74 68 65 20 | 66 69 72 73 74 20 58 33 |89, the |first X3|
|000059d0| 4a 31 36 20 63 6f 6d 6d | 69 74 74 65 65 20 6d 65 |J16 comm|ittee me|
|000059e0| 65 74 69 6e 67 0a 77 61 | 73 20 68 65 6c 64 20 69 |eting.wa|s held i|
|000059f0| 6e 20 57 61 73 68 69 6e | 67 74 6f 6e 20 44 43 3b |n Washin|gton DC;|
|00005a00| 20 69 6e 20 74 68 65 20 | 69 6e 74 65 72 65 73 74 | in the |interest|
|00005a10| 20 6f 66 20 75 73 65 72 | 73 2c 20 43 2b 2b 20 77 | of user|s, C++ w|
|00005a20| 61 73 20 67 6f 69 6e 67 | 20 74 6f 0a 62 65 20 73 |as going| to.be s|
|00005a30| 74 61 6e 64 61 72 64 69 | 7a 65 64 2e 0a 0a 41 73 |tandardi|zed...As|
|00005a40| 20 43 2b 2b 20 68 61 73 | 20 62 65 63 6f 6d 65 20 | C++ has| become |
|00005a50| 6d 6f 72 65 20 70 6f 70 | 75 6c 61 72 2c 20 6d 6f |more pop|ular, mo|
|00005a60| 72 65 20 64 65 6d 61 6e | 64 73 20 68 61 76 65 20 |re deman|ds have |
|00005a70| 62 65 65 6e 20 70 6c 61 | 63 65 64 20 6f 6e 20 69 |been pla|ced on i|
|00005a80| 74 73 0a 63 6f 6d 70 69 | 6c 65 72 73 2e 20 20 53 |ts.compi|lers. S|
|00005a90| 6f 6d 65 20 63 6f 6d 70 | 69 6c 65 72 73 20 61 72 |ome comp|ilers ar|
|00005aa0| 65 20 75 70 20 74 6f 20 | 74 68 65 20 64 65 6d 61 |e up to |the dema|
|00005ab0| 6e 64 73 2c 20 6f 74 68 | 65 72 73 20 61 72 65 20 |nds, oth|ers are |
|00005ac0| 6e 6f 74 2e 0a 47 4e 55 | 20 43 2b 2b 20 77 61 73 |not..GNU| C++ was|
|00005ad0| 20 75 73 65 64 20 74 6f | 20 70 72 6f 74 6f 74 79 | used to| prototy|
|00005ae0| 70 65 20 73 65 76 65 72 | 61 6c 20 66 65 61 74 75 |pe sever|al featu|
|00005af0| 72 65 73 20 77 68 69 63 | 68 20 68 61 76 65 20 73 |res whic|h have s|
|00005b00| 69 6e 63 65 0a 62 65 65 | 6e 20 69 6e 63 6f 72 70 |ince.bee|n incorp|
|00005b10| 6f 72 61 74 65 64 20 69 | 6e 74 6f 20 74 68 65 20 |orated i|nto the |
|00005b20| 73 74 61 6e 64 61 72 64 | 2c 20 6d 6f 73 74 20 6e |standard|, most n|
|00005b30| 6f 74 61 62 6c 79 20 65 | 78 63 65 70 74 69 6f 6e |otably e|xception|
|00005b40| 20 68 61 6e 64 6c 69 6e | 67 2e 0a 57 68 69 6c 65 | handlin|g..While|
|00005b50| 20 47 4e 55 20 43 2b 2b | 20 68 61 73 20 62 65 65 | GNU C++| has bee|
|00005b60| 6e 20 61 6e 20 65 78 63 | 65 6c 6c 65 6e 74 20 65 |n an exc|ellent e|
|00005b70| 78 70 65 72 69 6d 65 6e | 74 61 6c 20 76 65 68 69 |xperimen|tal vehi|
|00005b80| 63 6c 65 2c 20 69 74 20 | 64 69 64 0a 6e 6f 74 20 |cle, it |did.not |
|00005b90| 68 61 76 65 20 74 68 65 | 20 72 65 73 6f 75 72 63 |have the| resourc|
|00005ba0| 65 73 20 74 68 61 74 20 | 41 54 26 54 2c 20 42 6f |es that |AT&T, Bo|
|00005bb0| 72 6c 61 6e 64 2c 20 6f | 72 20 4d 69 63 72 6f 73 |rland, o|r Micros|
|00005bc0| 6f 66 74 20 68 61 76 65 | 20 61 74 20 74 68 65 69 |oft have| at thei|
|00005bd0| 72 0a 64 69 73 70 6f 73 | 61 6c 2e 0a 0a 57 65 20 |r.dispos|al...We |
|00005be0| 62 65 6c 69 65 76 65 20 | 74 68 61 74 20 47 4e 55 |believe |that GNU|
|00005bf0| 20 43 2b 2b 20 69 73 20 | 61 6e 20 69 6d 70 6f 72 | C++ is |an impor|
|00005c00| 74 61 6e 74 20 63 6f 6d | 70 69 6c 65 72 2c 20 70 |tant com|piler, p|
|00005c10| 72 6f 76 69 64 69 6e 67 | 20 75 73 65 72 73 20 77 |roviding| users w|
|00005c20| 69 74 68 0a 6d 61 6e 79 | 20 6f 66 20 74 68 65 20 |ith.many| of the |
|00005c30| 66 65 61 74 75 72 65 73 | 20 74 68 61 74 20 68 61 |features| that ha|
|00005c40| 76 65 20 6d 61 64 65 20 | 47 4e 55 20 43 20 73 6f |ve made |GNU C so|
|00005c50| 20 70 6f 70 75 6c 61 72 | 3a 20 66 61 73 74 20 63 | popular|: fast c|
|00005c60| 6f 6d 70 69 6c 61 74 69 | 6f 6e 2c 0a 67 6f 6f 64 |ompilati|on,.good|
|00005c70| 20 65 72 72 6f 72 20 6d | 65 73 73 61 67 65 73 2c | error m|essages,|
|00005c80| 20 69 6e 6e 6f 76 61 74 | 69 76 65 20 66 65 61 74 | innovat|ive feat|
|00005c90| 75 72 65 73 2c 20 61 6e | 64 20 66 75 6c 6c 20 73 |ures, an|d full s|
|00005ca0| 6f 75 72 63 65 73 20 74 | 68 61 74 20 6d 61 79 20 |ources t|hat may |
|00005cb0| 62 65 0a 66 72 65 65 6c | 79 20 72 65 64 69 73 74 |be.freel|y redist|
|00005cc0| 72 69 62 75 74 65 64 2e | 20 20 54 68 65 20 70 75 |ributed.| The pu|
|00005cd0| 72 70 6f 73 65 20 6f 66 | 20 74 68 69 73 20 6f 76 |rpose of| this ov|
|00005ce0| 65 72 68 61 75 6c 2c 20 | 64 75 62 62 65 64 20 74 |erhaul, |dubbed t|
|00005cf0| 68 65 20 7b 66 53 74 72 | 6f 6e 67 7d 47 4e 55 0a |he {fStr|ong}GNU.|
|00005d00| 43 2b 2b 20 52 65 6e 6f | 76 61 74 69 6f 6e 20 50 |C++ Reno|vation P|
|00005d10| 72 6f 6a 65 63 74 7b 66 | 7d 2c 20 69 73 20 74 6f |roject{f|}, is to|
|00005d20| 20 74 61 6b 65 20 61 64 | 76 61 6e 74 61 67 65 20 | take ad|vantage |
|00005d30| 6f 66 20 74 68 65 20 66 | 75 6e 63 74 69 6f 6e 61 |of the f|unctiona|
|00005d40| 6c 69 74 79 20 74 68 61 | 74 0a 47 4e 55 20 43 2b |lity tha|t.GNU C+|
|00005d50| 2b 20 6f 66 66 65 72 73 | 20 74 6f 64 61 79 2c 20 |+ offers| today, |
|00005d60| 74 6f 20 73 74 72 65 6e | 67 74 68 65 6e 20 69 74 |to stren|gthen it|
|00005d70| 73 20 62 61 73 65 20 74 | 65 63 68 6e 6f 6c 6f 67 |s base t|echnolog|
|00005d80| 79 2c 20 61 6e 64 20 70 | 75 74 20 69 74 20 69 6e |y, and p|ut it in|
|00005d90| 20 61 0a 70 6f 73 69 74 | 69 6f 6e 20 74 6f 20 72 | a.posit|ion to r|
|00005da0| 65 6d 61 69 6e 2d 2d 2d | 61 73 20 6f 74 68 65 72 |emain---|as other|
|00005db0| 20 47 4e 55 20 73 6f 66 | 74 77 61 72 65 20 63 75 | GNU sof|tware cu|
|00005dc0| 72 72 65 6e 74 6c 79 20 | 69 73 2d 2d 2d 74 68 65 |rrently |is---the|
|00005dd0| 20 74 65 63 68 6e 69 63 | 61 6c 0a 6c 65 61 64 65 | technic|al.leade|
|00005de0| 72 20 69 6e 20 74 68 65 | 20 66 69 65 6c 64 2e 0a |r in the| field..|
|00005df0| 0a 54 68 69 73 20 72 65 | 6c 65 61 73 65 20 72 65 |.This re|lease re|
|00005e00| 70 72 65 73 65 6e 74 73 | 20 74 68 65 20 6c 61 74 |presents| the lat|
|00005e10| 65 73 74 20 70 68 61 73 | 65 20 6f 66 20 77 6f 72 |est phas|e of wor|
|00005e20| 6b 20 69 6e 20 73 74 72 | 65 6e 67 74 68 65 6e 69 |k in str|engtheni|
|00005e30| 6e 67 20 74 68 65 0a 63 | 6f 6d 70 69 6c 65 72 20 |ng the.c|ompiler |
|00005e40| 6f 6e 20 61 20 76 61 72 | 69 65 74 79 20 6f 66 20 |on a var|iety of |
|00005e50| 70 6f 69 6e 74 73 2e 20 | 20 49 74 20 69 6e 63 6c |points. | It incl|
|00005e60| 75 64 65 73 20 6d 61 6e | 79 20 6d 6f 6e 74 68 73 |udes man|y months|
|00005e70| 20 6f 66 0a 77 6f 72 6b | 20 63 6f 6e 63 65 6e 74 | of.work| concent|
|00005e80| 72 61 74 65 64 20 6f 6e | 20 66 69 78 69 6e 67 20 |rated on| fixing |
|00005e90| 6d 61 6e 79 20 6f 66 20 | 74 68 65 20 6d 6f 72 65 |many of |the more|
|00005ea0| 20 65 67 72 65 67 69 6f | 75 73 20 62 75 67 73 20 | egregio|us bugs |
|00005eb0| 74 68 61 74 0a 70 72 65 | 73 65 6e 74 65 64 20 74 |that.pre|sented t|
|00005ec0| 68 65 6d 73 65 6c 76 65 | 73 20 69 6e 20 74 68 65 |hemselve|s in the|
|00005ed0| 20 63 6f 6d 70 69 6c 65 | 72 20 72 65 63 65 6e 74 | compile|r recent|
|00005ee0| 6c 79 2e 0a 49 6e 20 74 | 68 65 20 63 6f 6d 69 6e |ly..In t|he comin|
|00005ef0| 67 20 6d 6f 6e 74 68 73 | 2c 20 77 65 20 68 6f 70 |g months|, we hop|
|00005f00| 65 20 74 6f 20 63 6f 6e | 74 69 6e 75 65 20 65 78 |e to con|tinue ex|
|00005f10| 70 61 6e 64 69 6e 67 20 | 61 6e 64 20 65 6e 68 61 |panding |and enha|
|00005f20| 6e 63 69 6e 67 20 74 68 | 65 0a 71 75 61 6c 69 74 |ncing th|e.qualit|
|00005f30| 79 20 61 6e 64 20 64 65 | 70 65 6e 64 61 62 69 6c |y and de|pendabil|
|00005f40| 69 74 79 20 6f 66 20 74 | 68 65 20 69 6e 64 75 73 |ity of t|he indus|
|00005f50| 74 72 79 27 73 20 6f 6e | 6c 79 20 66 72 65 65 6c |try's on|ly freel|
|00005f60| 79 20 72 65 64 69 73 74 | 72 69 62 75 74 61 62 6c |y redist|ributabl|
|00005f70| 65 0a 43 2b 2b 20 63 6f | 6d 70 69 6c 65 72 2e 0a |e.C++ co|mpiler..|
|00005f80| 0a 00 00 00 44 41 54 41 | d2 07 00 00 4d 61 6a 6f |....DATA|....Majo|
|00005f90| 72 20 63 68 61 6e 67 65 | 73 0a 50 72 65 76 69 6f |r change|s.Previo|
|00005fa0| 75 73 3a 20 3c 53 75 6d | 6d 61 72 79 20 6f 66 20 |us: <Sum|mary of |
|00005fb0| 50 68 61 73 65 20 31 2e | 33 3d 3e 53 75 6d 6d 61 |Phase 1.|3=>Summa|
|00005fc0| 72 79 6f 66 50 3e 20 2a | 20 4e 65 78 74 3a 20 3c |ryofP> *| Next: <|
|00005fd0| 4e 65 77 20 66 65 61 74 | 75 72 65 73 3d 3e 4e 65 |New feat|ures=>Ne|
|00005fe0| 77 66 65 61 74 75 72 65 | 3e 20 2a 20 55 70 3a 20 |wfeature|> * Up: |
|00005ff0| 3c 43 68 61 6e 67 65 73 | 3d 3e 43 68 61 6e 67 65 |<Changes|=>Change|
|00006000| 73 3e 0a 0a 23 57 72 61 | 70 20 6f 6e 0a 7b 66 48 |s>..#Wra|p on.{fH|
|00006010| 33 7d 4d 61 6a 6f 72 20 | 43 68 61 6e 67 65 73 7b |3}Major |Changes{|
|00006020| 66 7d 0a 0a 54 68 69 73 | 20 72 65 6c 65 61 73 65 |f}..This| release|
|00006030| 20 69 6e 63 6c 75 64 65 | 73 20 66 6f 75 72 20 77 | include|s four w|
|00006040| 68 6f 6c 65 73 61 6c 65 | 20 72 65 77 72 69 74 65 |holesale| rewrite|
|00006050| 73 20 6f 66 20 63 65 72 | 74 61 69 6e 20 61 72 65 |s of cer|tain are|
|00006060| 61 73 20 6f 66 0a 63 6f | 6d 70 69 6c 65 72 20 66 |as of.co|mpiler f|
|00006070| 75 6e 63 74 69 6f 6e 61 | 6c 69 74 79 3a 0a 0a 23 |unctiona|lity:..#|
|00006080| 49 6e 64 65 6e 74 20 2b | 34 0a 20 31 2e 20 64 65 |Indent +|4. 1. de|
|00006090| 73 63 72 69 62 65 64 20 | 69 6e 20 43 68 61 70 74 |scribed |in Chapt|
|000060a0| 65 72 20 31 33 2c 20 60 | 60 4f 76 65 72 6c 6f 61 |er 13, `|`Overloa|
|000060b0| 64 69 6e 67 27 27 2c 20 | 6f 66 20 74 68 65 20 41 |ding'', |of the A|
|000060c0| 52 4d 2e 20 20 54 68 69 | 73 20 62 65 68 61 76 69 |RM. Thi|s behavi|
|000060d0| 6f 72 20 69 73 0a 74 68 | 65 20 64 65 66 61 75 6c |or is.th|e defaul|
|000060e0| 74 2c 20 74 68 6f 75 67 | 68 20 79 6f 75 20 63 61 |t, thoug|h you ca|
|000060f0| 6e 20 73 70 65 63 69 66 | 79 20 69 74 20 65 78 70 |n specif|y it exp|
|00006100| 6c 69 63 69 74 6c 79 20 | 77 69 74 68 0a 7b 66 45 |licitly |with.{fE|
|00006110| 6d 70 68 61 73 69 73 7d | 2d 66 61 6e 73 69 2d 6f |mphasis}|-fansi-o|
|00006120| 76 65 72 6c 6f 61 64 69 | 6e 67 7b 66 7d 2e 20 20 |verloadi|ng{f}. |
|00006130| 20 46 6f 72 20 63 6f 6d | 70 61 74 69 62 69 6c 69 | For com|patibili|
|00006140| 74 79 20 77 69 74 68 20 | 65 61 72 6c 69 65 72 20 |ty with |earlier |
|00006150| 72 65 6c 65 61 73 65 73 | 20 6f 66 0a 47 4e 55 20 |releases| of.GNU |
|00006160| 43 2b 2b 2c 20 73 70 65 | 63 69 66 79 20 7b 66 45 |C++, spe|cify {fE|
|00006170| 6d 70 68 61 73 69 73 7d | 2d 66 6e 6f 2d 61 6e 73 |mphasis}|-fno-ans|
|00006180| 69 2d 6f 76 65 72 6c 6f | 61 64 69 6e 67 7b 66 7d |i-overlo|ading{f}|
|00006190| 3b 20 74 68 69 73 20 6d | 61 6b 65 73 20 74 68 65 |; this m|akes the|
|000061a0| 20 63 6f 6d 70 69 6c 65 | 72 0a 62 65 68 61 76 65 | compile|r.behave|
|000061b0| 20 61 73 20 69 74 20 75 | 73 65 64 20 74 6f 20 77 | as it u|sed to w|
|000061c0| 69 74 68 20 72 65 73 70 | 65 63 74 20 74 6f 20 61 |ith resp|ect to a|
|000061d0| 72 67 75 6d 65 6e 74 20 | 6d 61 74 63 68 69 6e 67 |rgument |matching|
|000061e0| 20 61 6e 64 20 6e 61 6d | 65 20 6f 76 65 72 6c 6f | and nam|e overlo|
|000061f0| 61 64 69 6e 67 2e 0a 0a | 20 32 2e 20 43 6c 61 73 |ading...| 2. Clas|
|00006200| 73 20 4f 62 6a 65 63 74 | 73 27 27 2c 20 61 6e 64 |s Object|s'', and|
|00006210| 20 53 65 63 74 69 6f 6e | 20 31 32 2e 31 2c 20 60 | Section| 12.1, `|
|00006220| 60 43 6f 6e 73 74 72 75 | 63 74 6f 72 73 27 27 2c |`Constru|ctors'',|
|00006230| 20 73 74 61 74 65 20 74 | 68 61 74 20 61 0a 63 6f | state t|hat a.co|
|00006240| 6d 70 69 6c 65 72 20 6d | 75 73 74 20 64 65 63 6c |mpiler m|ust decl|
|00006250| 61 72 65 20 73 75 63 68 | 20 64 65 66 61 75 6c 74 |are such| default|
|00006260| 20 66 75 6e 63 74 69 6f | 6e 73 20 69 66 20 74 68 | functio|ns if th|
|00006270| 65 20 75 73 65 72 20 64 | 6f 65 73 20 6e 6f 74 0a |e user d|oes not.|
|00006280| 73 70 65 63 69 66 79 20 | 74 68 65 6d 2e 20 20 47 |specify |them. G|
|00006290| 4e 55 20 43 2b 2b 20 6e | 6f 77 20 64 65 63 6c 61 |NU C++ n|ow decla|
|000062a0| 72 65 73 2c 20 61 6e 64 | 20 67 65 6e 65 72 61 74 |res, and| generat|
|000062b0| 65 73 20 77 68 65 6e 20 | 6e 65 63 65 73 73 61 72 |es when |necessar|
|000062c0| 79 2c 0a 74 68 65 20 64 | 65 66 61 75 6c 74 73 20 |y,.the d|efaults |
|000062d0| 66 6f 72 20 63 6f 6e 73 | 74 72 75 63 74 6f 72 73 |for cons|tructors|
|000062e0| 20 61 6e 64 20 64 65 73 | 74 72 75 63 74 6f 72 73 | and des|tructors|
|000062f0| 20 79 6f 75 20 6d 69 67 | 68 74 20 6f 6d 69 74 2e | you mig|ht omit.|
|00006300| 20 20 49 6e 0a 70 61 72 | 74 69 63 75 6c 61 72 2c | In.par|ticular,|
|00006310| 20 61 73 73 69 67 6e 6d | 65 6e 74 20 6f 70 65 72 | assignm|ent oper|
|00006320| 61 74 6f 72 73 20 28 7b | 66 45 6d 70 68 61 73 69 |ators ({|fEmphasi|
|00006330| 73 7d 6f 70 65 72 61 74 | 6f 72 20 3d 7b 66 7d 29 |s}operat|or ={f})|
|00006340| 20 62 65 68 61 76 65 20 | 74 68 65 20 73 61 6d 65 | behave |the same|
|00006350| 20 77 61 79 0a 77 68 65 | 74 68 65 72 20 79 6f 75 | way.whe|ther you|
|00006360| 20 64 65 66 69 6e 65 20 | 74 68 65 6d 2c 20 6f 72 | define |them, or|
|00006370| 20 77 68 65 74 68 65 72 | 20 74 68 65 20 63 6f 6d | whether| the com|
|00006380| 70 69 6c 65 72 20 67 65 | 6e 65 72 61 74 65 73 20 |piler ge|nerates |
|00006390| 74 68 65 6d 20 62 79 0a | 64 65 66 61 75 6c 74 3b |them by.|default;|
|000063a0| 20 74 61 6b 69 6e 67 20 | 74 68 65 20 61 64 64 72 | taking |the addr|
|000063b0| 65 73 73 20 6f 66 20 74 | 68 65 20 64 65 66 61 75 |ess of t|he defau|
|000063c0| 6c 74 20 7b 66 45 6d 70 | 68 61 73 69 73 7d 6f 70 |lt {fEmp|hasis}op|
|000063d0| 65 72 61 74 6f 72 20 3d | 7b 66 7d 20 69 73 20 6e |erator =|{f} is n|
|000063e0| 6f 77 0a 67 75 61 72 61 | 6e 74 65 65 64 20 74 6f |ow.guara|nteed to|
|000063f0| 20 77 6f 72 6b 2e 20 20 | 44 65 66 61 75 6c 74 20 | work. |Default |
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.