                                               XVt: 2003 N 3  28 

 Sun[tm] ONE Studio 8: C++ RpC Readme

     ڎ

       A. ͂߂
       B. Sun ONE Studio 8AC++ RpCɂ
       C. VKѕύXꂽ@\
       D. \tgEFȀC
       E. _Ɖ
       F. ƌ̖݊
       G. Lq̌̒
       H. Cu̍Ĕzzɂ
       I. Ή̌dl



     ------------------------------------------------------------------

     A. ͂߂

     ̕ł́ASun Open Net Environment (Sun ONE) Studio 8,
     Compiler Collection  C++ RpCɊւ񋟂܂B
     ̕ł͓RpC C++ RpC̃o[W 5.5 ƌĂԏꍇ
     ܂B ܂A̕ł͍̃[XŒ񋟂V@\
     \tgEFȀCɂĉƂƂɁAm̖␧
     Aь̖݊ɂĐĂ܂B̋̕Lړe
     \tgEFA}jȀXV܂͕[܂B

     i}jA

        * [Xm[g: http://docs.sun.com/ œł܂B [
          Xm[g̏́Aei Readme t@C̏ɗD悵
          B
        * Compiler Collection ̃}jA: ĩ}jAy[WA
          HTML ł ReadmeAу}jÁA
          /opt/SUNWspro/docs/ja/index.html œł܂B
        * Compiler Collection JҌ\[X|[^: ZpA
          Compiler Collection ֘ÃhLgAmx[XȂǂɂ
          ẮA Compiler Collection Developer Resources Portal (p)
          QƂĂB

      - Compiler Collection \tgEFAftHg /opt fBN
     gɃCXg[ĂȂꍇ́AVXȇΉpXV
     XeǗ҂ɊmFĂB ̃}jA̍ANZX
     ł C++ }jA͈ȉ̂ƂłB

        * C++ FAQ
        * C++ [U[YKCh
        * C++ ڍs Readme
        * C++ ڍsKCh
        * W C++ CuENXt@X / Standard C++
          Library Class Reference (p)
        * W C++ CuE[U[YKCh
        * Tools.h++ 7.1.0 Readme
        * Tools.h++ [U[YKCh
        * Tools.h++ NXCuEt@X}jA
        * ԉZ Readme
        * C++ ԉZvO~Ot@X / C++ Interval
          Arithmetic Programming Reference (p)
        * wCu Readme
        * sCu Readme
        * lvZKCh
        * CN^J[ Readme
        * CC(1) ̃}jAy[W
        * 3C++ }jAy[W (W C++ Cu)
        * 3CC4 }jAy[W (݊[hCu)

     ̃̕eLXgł\ɂ́AR}hvvgŎ̃R}
     h͂܂B

             CC -xhelp=readme

     ̕ HTML ł\ɂ́Ãt@CɃANZX܂B

        file:/opt/SUNWspro/docs/ja/index.html



     ------------------------------------------------------------------

     B. Sun ONE Studio 8AC++ RpCɂ

     ̃[X C++ RpĆASolaris[tm] Iy[eBO
     SPARC (R); vbgtH[ł o[W 7A8A9 ƁASolaris I
     y[eBO x86 vbgtH[ł̃o[W7A8A9 ŗ
     pł܂B

     ̃o[W 5.5  C++ RpĆAo[W 5.0A5.1A5.2A
     5.3A5.4A 5.5  C++ RpC̃\[XR[hуoCi
     R[hƏ݊łBȂ킿AC++ 5.5 RpCgpāAo[
     W 5.0A5.1A5.2A5.3A 5.4  C++ RpCpɍ쐬
     ꂽ\[XR[hRpCł܂B܂Ao[W 5.0A5.1A
     5.2A5.3A5.4  C++ RpCɂĐꂽIuWFNgR[
     h C++ 5.5 RpCŐꂽIuWFNgR[hƃNł
     ܂BNꍇ́AɍŐṼRpCA܂荡̃[X
     ło[W 5.5 gpĂB

     C++ 5.5 RpCɂ́AC++ 4.2 RpCpɍ쐬ꂽ\[XR[
     hRpC邽߂ -compat IvVpӂĂ܂B
     -compat IvV́Ao[W 5.0 瓱ꂽIvV
     B



     ------------------------------------------------------------------

     C. VKѕύXꂽ@\

     ł́Ã[X C++ RpCɐVɒǉꂽ@\ƕ
     Xꂽ@\܂BSun ONE Studio 8 ̂̑̃R|[l
     gɂẮAwSun ONE Studio 8 ̐V@\xQƂĂB
     [JVXe܂̓lbg[Nł̃}jAɃANZX
     ́Afile:/opt/SUNWspro/docs/ja/index.html JĂB
     http://docs.sun.com ɂ}jAfڂĂ܂B

     ʓIȋ@\
     ev[gLbV͕sv:-instances
     ϐXR[vɃJ[}bvt@C͕sv: -xldscope
     }Npɋ͂Ȑff@\ǉ:-xdumpmacros
     VIS[tm] Developers Kit ̃T|[g:-xvis (SPARC)
     C99 sCuƎs̃T|[g: -xlang=c99
     UTF-16 񃊃ẽT|[g:-xustr
     OpenMP ̃T|[gg:-xopenmp
     ǂꂽ -xprofile (SPARC)

     荂ȃRpC
     \`FbN̍:-xe
     -xprofile_ircache ɂ鍂ȃvt@CO (SPARC)
     dev[gCX^X̒~: -instlib=filename
     -template=geninlinefuncs ɂ֐
     vRpCς݃wb_[A-xpch
     -xjobs=n ɂ镡vZbT̎gp (SPARC)

     eՂȈڐA
     -xmemalign ɂڐÅȈՉ
     -xchar ɂ char ̐̕ݒ
     -xport64 ɂڐAꂽR[h̃fobO

     ptH[}X̌
     J[ɂăT|[gAf[^̃Xbh[JȋL̈
     gps\̌:-xthreadvar (SPARC)
     y[WtHg炷Ƃɂs\̌: -xF
     VvO}ɂs\̌
     Link-Time Optimizer ɂs\̌: -xlinkopt (SPARC)
     -xpagesize=n ɂs\̌ (SPARC)

     xƃG[̒ǉ
     -erroff ɂxbZ[W̃tB^O
     -errtags  -errwarn ɂRpC̒~
     -filt=[no%]stdlib ɂAWCũtB^Ǒ



     ev[gLbV͕sv:-instances

      C++ RpC[Xł́Aev[g̃CX^X@\
     啝ɌサĂ܂BftHg̃ev[gCX^Xf
     gpvÓA1 ̃fBNg 1 ̃vO
     \złȂƂ󂯂邱ƂȂȂ܂B

     փCX^Xf (-instances=static Ȃ) ɈˑقƂ
     ǂ̃vOAVftHg̃CX^Xfgpł
     悤ɂȂ܂B

     ev[gCX^X@\̌ƕύXɂev[gLb
     VsvɂȂ߁ARpCԂZkł܂B܂AÓI
     ̏d邱Ƃł邽߁AsvÕTCYkɂ
     Ȃ܂B

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -instances QƂĂB

     ϐXR[vɃJ[}bvt@C͕sv: -xldscope

     ̃[Xł́AICũV{̃GNX|[g𐧌
     ̂ 2 ނ̕@𗘗pł悤ɂȂ܂B̋@\̓
     J[XR[vƌĂ΂Aŋ߂ɂȂăJ[}bvt@CɂăT
     |[g悤ɂȂ̂łB܂Ã[X̓R[h
     ɐV錾wq𖄂ߍނƂł悤ɂȂ܂B__global
     A__symbolicA __hidden R[hɒږߍ߂΂悭A}b
     vt@CgpKv܂B 1 ̕@́AR}h
     s -xldscope w肷邱ƂɂĕϐXR[ṽftHgݒ
     ㏑̂łB

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xldscope QƂĂB錾wq̏ڍ
     ́AwC++ [U[YKChx̑ 4 ́uLanguage Extensionsvŏq
     Ă܂B

     }Npɋ͂Ȑff@\ǉ:-xdumpmacros

     ̃[Xł́AAvP[Ṽ}N̒ǐՂɕ֗Ȃ悤
     ɁAVvO} 2 ƐVRpCIvV 1 ǉ
     ܂Bɂ́AVXewb_[ɒ`}N܂܂
     B

     R}hs -xdumpmacros IvVgp邱ƂŁA}N`
     mFAvÔǂŃ}N̒`A`̉A}N̎g
     pȂĂ邩mFł܂Bœ_iɂ́A\[X
     ڐV dumpmacros vO} end_dumpmacros vO}gp
     B

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xdumpmacros QƂĂB

     VIS Developers Kit ̃T|[g:-xvis (SPARC)

     VIS ߃Zbg Software Developers Kit (VSDK) Œ`ĂAZ
     uev[ggpĂꍇ́A-xvis=[yes|no] IvV
     gpĂBftHg -xvis=no łB

     VIS ߃ZbǵASPARC v9 ߃Zbg̊g@\łB UltraSPARC
     vZbT 64 rbgłA܂܂ȃP[XAɃ}`
     fBAAvP[Vł̓f[^TCY 8 rbg܂ 16 rbg
     Ɍ肳邱Ƃ܂BVIS ߂ 1 ̖߂ 4  16 rb
     gf[^ł邽߁AC[WOA`㐔AVOiAI
     [fBIArfIAlbg[LOȂǂ̂悤ȃj[fBA
     AvP[ṼptH[}X啝Ɍコ܂B

     VSDK ɂĂ̏́Ahttp://www.sun.com/processors/vis QƂ
     ĂB

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xvis QƂĂB

     C99 sCuƎs̃T|[g: -xlang=c99

     C99 Ki (ISO/IEC 9899:1999AvO~O - C) T|[g
     Iy[eBOVXeł́A-xlang=c99  C Cu֐
     яo C R[h C++ R[h C99 sw肵܂BC99
     ̒ɂ́AC f^̂悤 C RpCł -xc99=%all Iv
     V̎gpɈˑ̂΁Aprintf ̂悤ɂ̃IvV
     ɍEȂ̂܂B

     C99 T|[g̓RpNg[h (-compat=4) ł͎gpłȂƂ
     ӂĂB

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xlang QƂĂB

     UTF-16 񃊃ẽT|[g:-xustr

     ISO10646 UTF-16 񃊃egp鍑ۉꂽAvP[V
     T|[gKvꍇ́A-xustr=ascii_utf16_ushort w
     ĂB܂肱̃IvV́AIuWFNgt@C𐶐
     ꍇ UTF-16 ɕϊ񃊃eR[hɊ܂܂
     ꍇɎgp܂B̃IvVw肵ȂƁARpC 16
     rbg̒P񃊃e̐AFs܂B̃IvV
     w肷ƁAU"ASCII_string" 񃊃e͕ȂZƂ
     F܂B ̂悤ȕ͂ǂ̋Kił܂Ă
     ܂񂪁A ̃IvVgp邱ƂŋKiO C++ F
     Ƃł܂B

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xustr QƂĂB

     OpenMP ̃T|[gg:-xopenmp

     C++ RpC͖I񉻂̂߂ OpenMP C^tF[X̎
     pĂ܂B

     C++ RpĆÂ悤 OpenMP @\g܂B

        * OpenMP f[^߂ŃNXIuWFNggpł
        * NXo[֐ OpenMP vO}gpł

     ̗́AOpenMP ̈ɂNXIuWFNg̎gpƁAN
     Xo[֐ɂ OpenMP \̎gpĂ܂B

     #include <omp.h>
     class A{
     public:
         int i;
         A(){i = 5;};          // RXgN^
         A(const A& a){ i = a.i;};    // Rs[RXgN^
         A& operator=(const A& a)      // 
         {
             if (this != &a)
               i = a.i;
             return *this;
         };
         ~A(){};                       // fXgN^
         void foo();
     };

     void A::foo()             // vO}gpo[֐
     {
       #pragma omp parallel
             i = omp_get_thread_num();
     }

     main()
     {
       A a, b, c;
       b.i = 10;
       c.i = 100;
       // OpenMP f[^߂ŎgpNXIuWFNg
       #pragma omp parallel private(a) firstprivate(b)
       {
             #pragma omp for lastprivate(c) private(a) // ČŗL
             for(int i = 0; i < 50; i++)
                 c.i = i * a.i;
             a = b;
       }
       a.foo();
     }

     ɁAL OpenMP vOł̊m̖_
     B

        * NXIuWFNg threadprivate ϐƂĎgpƐ
          삵Ȃꍇ
        * OpenMP ̈ try ubN catch ubN삵Ȃ
          ꍇ
        * OpenMP f[^߂܂ OpenMP ̈ std::string NXI
          uWFNggpƁAُȓNƂ

     ̃RpCIvV̏ڍׂ́ACC(1) ܂ Sun ONE Studio 8
     Compiler CollectionwC++ [U[YKChx -xopenmp QƂ
     B Sun  OpenMP ̏ڍׂ́ASun ONE Studio 8 Compiler
     CollectionwOpenMP API [U[YKChxQƂĂB

     ǂꂽ -xprofile (SPARC)

     -xprofile IvV͎̂悤ɉǂ܂B

        * LCũvt@COT|[g
        * -xprofile=collect -mt ɂAXbhɑ΂ĈSȃvt@
          CW
        * 1 ̃vt@CfBNg̃̕vO܂͋L
          Cuvt@CO悤ɃT|[g

     -xprofile=use gp邱ƂŁARpC͈ӂł͂Ȃx[X
     ̃IuWFNgt@C̃f[^ۑꂽvt@CfB
     NgŁAvt@Cf[^邱Ƃł悤ɂȂ܂
     BRpCIuWFNgt@C̃vt@Cf[^oł
     Ȃꍇ́ARpC͐VIvV
     -xprofile_pathmap=collect-prefix: use-prefix 񋟂܂B

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xprofile  -xprofile_pathmap QƂĂ
     B

     \`FbN̍:-xe

     -xe w肵ꍇARpC͍\G[ƈӖ̌`FbN
     邾ŁAIuWFNgR[h͐܂B

     -xe IvV́ARpCɂăIuWFNgt@C𐶐
     KvȂꍇɎgpĂBƂ΁AR[ḧꕔ폜
     G[bZ[W̌ȂƂĂꍇ́A-xe gp邱
     ƂŕҏWƃRpC̍ƂXs[hAbvł܂B

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xe QƂĂB

     -xprofile_ircache ɂ鍂ȃvt@CO (SPARC)

     WtF[YŕۑꂽRpCf[^Ďgp邱ƂɂĎg
     ptF[ỸRpCԂZkꍇ́A
     -xprofile_ircache[=path]  -xprofile=collect|use 𕹗pĂ
     B

     傫ȃvȌꍇ́Aԃf[^ۑ邽߁AgptF[Y
     ̃RpCԂ啝ɒZk܂Bf[^ۑ邱ƂŃfBX
     Neʂ̗vg傷\邱ƂɒӂĂB

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xprofile_ircache QƂĂB

     dev[gCX^X̒~: -instlib=filename

     -instlib=filename ́ACuƌ݂̃IuWFNgŃev[g
     CX^XdĐ邱Ƃ֎~ꍇɎgpĂ
     B ʂɁAvÕCX^XCuƋL
     ꍇ́A-instlib=filename ARpCԂZk邩ǂ
     mFĂB

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -templateA-instancesA -pti QƂĂ
     B

     -template=geninlinefuncs ɂ֐

     ʏ C++ RpĆA֐ĂяoăCCs\ȏ
     ACCev[g֐𐶐܂BA
     -template=geninlinefuncs w肷ƁA܂ł͐邱Ƃ
     ȂACX^XꂽNXev[g̃CCo
     [֐CX^X܂B̊֐̃P[ẂAׂĂ
     P[XƂ[JłB

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -template QƂĂB

     vRpCς݃wb_[A-xpch

     ̃RpC[Xł́AvRpCς݃wb_[ƂV@\
     񋟂Ă܂BvRpCς݃wb_[t@CgpƁA
     eʃ\[XR[hʂ̃CN[ht@CZbg\[Xt
     @CLĂꍇɃAvP[ṼRpCԂZk
     ꍇ܂B́A1 ̃\[Xt@CÃwb_[
     t@CɊւWÃ\[Xt@CăRpC
     ꍇAwb_[Qق̃\[Xt@CRpC
     ɂ̏gpƂ@ōs܂B̋@\́A-xpch I
     vV -xpchstop IvV #pragma hdrstop w߂ƕp邱
     Ƃŗpł܂B

     ڍׂ́ACC(1)  -xpch IvV -xpchstop IvVQƂ
     BSun ONE Studio 8 Compiler CollectionwC++ [U[YKC
     hxłÃIvV #pragma hdrstop ̏ڍׂĂ
     ܂B

     -xjobs=n ɂ镡vZbT̎gp (SPARC)

     -xjobs=n IvV́AƂs߂ɃRpC쐬vZ
     X̐ݒ肷邽߂Ɏw肵܂B̃IvV́A}` CPU }
     VɂrhԂZkʂ܂B݁A-xjobs 
     -xipo IvVƂ̕pł@\܂B-xjobs=n w肷
     ƁAݎ葱IveB}CU͂܂܂ȃt@CRpC邽
     ߂ɌĂяoƂłR[hWFl[^CX^X̍ő吔Ƃ
      n gp܂B

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xjobs QƂĂB

     -xmemalign ɂڐÅȈՉ

     -xmemalign IvV́Af[^ɊւRpC̑O𐧌
     邽߂Ɏgp܂BE[ANZXNȂ
     ɃR[hWFl[^𐧌䂵AEANZXN
     ꍇɃvO̓𐧌䂷邱ƂŁASolaris ɃR[hڐA
     ₷Ȃ܂B

     -xmemalign IvV́AKvȏɋE񂪍sꂽf[^̃pt
     H[}X߂AʏɃpbP[Wꂽ\̂ɃAN
     ZXꍇɂgp܂B

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -memalign QƂĂB

     -xchar ɂ char ̐̕ݒ

     -xchar[={signed|s|unsigned|u}] IvV́Achar ^uȂv
     ƒ`ꂽVXẽR[hڐAȈՉ邽߂̂̂łB
     ̂悤ȃVXeڐAsꍇÃIvVgp
     łBLqύXāutv܂́uȂvƖI
     Ɏw肷Kv̂́Achar ^̕ɈˑR[hłB
     ڍׂ́AwC++ [U[YKChx܂ CC(1) QƂĂB

     -xport64 ɂڐAꂽR[h̃fobO

     ̐V -xport64 IvV́A64 rbgɃR[hڐA
     ꍇɎgpĂB̃IvVgpƁAV7 (ILP32) 
     ǂ 32 rbgA[LeN` V9 (LP64) Ȃǂ 64 rbgA[L
     eN`փR[hڐAꍇɂ悭l (|C^܂) 
     ؂̂āAgArbgpbLOւ̕ύXȂǂ̖肪x
     B

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xport64 QƂĂB

     J[ɂăT|[gAf[^̃Xbh[JȋL̈
     gps\̌:-xthreadvar (SPARC)

     VXbh[JȋL̈@\ɂ̓J[ɂăT|[g
     ܂B̍ƂɎgpĂB

        * XbhŗL̃f[^蓖Ă邽 POSIX C^tF[X̍
          𗘗p
        * }`vZXvO}`XbhvOɕϊ
        * Xbh[JȋL̈gpĂ Windows AvP[V
           Solaris ɈڐA
        * OpenMP  threadprivate ϐ̍𗘗p

     ̃[X̃RpCł́AXbh[Jϐ̐錾ʂăX
     bh[JȋL̈gpł܂B̐錾ɂ́Aϐwq
     __thread ̒ǉɂʏ̕ϐ錾ƁAR}hsIvV
     -xthreadvar ɂ錾܂B

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xthreadvar QƂĂB錾wq̏
     ׂ́AwC++ [U[YKChx̑ 4 ́ugvŐĂ
     B

     y[WtHg炷Ƃɂs\̌: -xF

     ̐V@\ -xF ́AJ[ɂϐƊ֐̕בւœKɂ
     ߂Ɏgp܂B̋@\gpƁAs̃ptH[}XɈ
     e^鎟̂悤Ȗ₷Ȃ܂B

        * [ŗאڂĂ֘ÂȂ̕ϐɂċN
          LbVƃy[W
        * [ŗאڂĂȂ֘ÂȂϐɂċNsK
          vɑ傫ȃ[NZbg
        * Lȃf[^xアϐ̖gpRs[ɂċN
          sKvɑ傫ȃ[NZbg

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xF QƂĂB

     VvO}ɂs\̌

     C++ RpĆAR[h̍œKɗLȃvO}V 4 T|
     [g悤ɂȂ܂B̃vO}̏ڍׂ́AwC++ [U[
     YKChxQƂĂB

        * #pragma does_not_read_global_data
        * #pragma does_not_return
        * #pragma does_not_write_global_data
        * #pragma rarely_called

     ڍׂ́ASun ONE Studio 8 Compiler CollectionwC++ [U[YKC
     hx̕t^ BuvO}vQƂĂB

     Link-Time Optimizer ɂs\̌: -xlinkopt (SPARC)

     -xlinkopt R}hw肷邱ƂŁAC++ RpC͍Ĕzu\ȃI
     uWFNgt@Cɑ΂ăN̍œK{ł悤ɂȂ
     BCC(1) QƂĂB

     -xlinkopt w肷ƁANɃRpC̓NĂ .o
     t@CύX邱ƂȂtIȍœK{܂B ̍œK
     ốAs\vOłB-xlinkopt IvV
     ́AvOŜRpC鎞ɁAvt@C̃tB[hob
     NƂƂɎgpƂƂʓIłB

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xlinkopt QƂĂB

     -xpagesize=n ɂs\̌ (SPARC)

     -xpagesize=n IvV́AX^bNƃq[ṽy[WTCYݒ肷
     ꍇɎgp܂Bn ɂ́A8KA64KA512KA4MA32MA256MA2GA16G
     A܂ default wł܂BΏۃvbgtH[ Solaris I
     y[eBOɗLȃy[WTCY (getpagesize(3C) ŕ\
     TCY) w肵ĂBLȃy[WTCYw肵ȂƗv
     ͎sɖAm点郁bZ[W͕\܂BΏ
     vbgtH[̃y[WTCÝApmap(1) ܂ meminfo(2) ŊmF
     ł܂B

     ̃IvV́A-xpagesize_stack  -xpagesize_heap ̃}N
     B

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -xpagesizeA-xpagesize_heapA
     -xpagesize_stack QƂĂB

     -erroff ɂxbZ[W̃tB^O

     ̃[Xł́AV -erroff IvVgpČxbZ[
     WRpC̃tgGhɌȂ悤ɂ邱Ƃł悤
     ɂȂ܂BAG[bZ[WƃhCõbZ[W
     ͓Kp܂B ̌xbZ[W -erroff KpǍx
     bZ[W}悤ɂ邱ƂA邢͂̌xb
     Z[Ws悤ɂ邱Ƃ\łB

     Ƃ΁A-erroff=tag  tag Ɏw肳ꂽxbZ[W}
     BA-erroff=%all,no%tag ́Atag œ肳郁bZ[W
     ׂĂ̌xbZ[W}܂B xbZ[W̃^ÓA
     -errtags=yes IvVgpĕ\ł܂B

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -erroff QƂĂB

     -errtags  -errwarn ɂRpC̒~

     ̃[Xł́ARpCIvV -errtags  -errwarn gp
     ARpČx𔭍sꍇɃRpC~ł
     ɂȂ܂B ܂̌x̃^O邽߂ -errtags=yes
     ݒ肵A -errwarn=tag w肵܂ (tag ͓胁bZ[W
     ΂ -errtags Ԃӂ̎ʎq)B

     ܂A-errwarn=%all gpAǂ̌xsĂRpC
     ~悤Ɏw肷邱Ƃł܂BCC(1)  -xwe QƂĂ
     B

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -errtags  -errwarn QƂĂB

     -filt=[no%]stdlib ɂWCũtB^Ǒ

     ftHgł́AJ[ƃRpC̃G[bZ[W̕WC
     u̖OȈՉ悤ɁA-filt=[no%]stdlib IvV
     肳Ă܂B ̂߁A[U[͕WCu֐̖O
     PɔFł܂B̃tB^O𖳌ɂꍇ́A
     -filt=no%stdlib w肵ĂB

     ڍׂ́ACC(1) ܂ Sun ONE Studio 8 Compiler CollectionwC++ 
     [U[YKChx -filt QƂĂB



  ------------------------------------------------------------------------

D. \tgEFȀC

ł́Ã\tgEFȀCɂĐ܂B

  1. ܂ȕ\ : RXgN^Ăяo܂͊֐ւ̃|C^
  2. Solaris 8 update 2 уpb`ɂ ctype `G[̏C
  3. -instance=static  -instance=semiexplicit ƃev[g̐ÓI
     ̃T|[g
  4. ֐Ƀ[JȐÓIϐɑ΂ extern CC֐̓̈Ⴂ
  5. ev[g̍\G[̌o
  6. -staticlib IvV -G ̓w肪\

  1. ܂ȕ\ : RXgN^Ăяo܂͊֐ւ̃|C^

     C++ ł́AƂ͐錾Ɖ߂ꂽA܂Ƃ͎Ɖ߂
     \镶܂BC++ ̂܂rKł́A镶錾Ƃ
     ȂƂłꍇ́A͐̕錾Ƃ邱ƂɂȂĂ܂B

     ȑÕo[W̃RpCł́Â悤Ȏĉ߂Ă܂
     B

         struct S {
           S();
         };
         struct T {
           T( const S& );
         };
         T v( S() );    // ???

     ̃vO}͂炭AŌ̍s S ^̈ꎞIȒlŏϐ
     v `łBȑÕo[W̃RpĆA̕
     悤ɉ߂Ă܂B

     A錾ReLXg̃RXgNgA"S()" ́A"S ^̒l߂p
     [^̂Ȃ֐" Ӗ钊ې錾q (ʎq̂Ȃې錾q) Ƃ
     ȂƂł܂B̎ł́A֐|C^A"S(*)()" ɎIɕϊ
     Ă܂B͂̕܂A߂l T ^ŁAp[^֐|C^^
     ̊֐ v ̐錾ƂĂLłB

     ݂ł̓RpC߂悤ɂȂ̂ŁÃvO}
     Ӑ}悤ɂȂȂ\܂B

     ܂ɂȂȂ悤ɃR[hCɂ́A 2 ʂ̕@
     B

         T v1( (S()) );  // v1 ́AIuWFNg
         T v2( S(*)() ); // v2 ́A֐

     1 sڂ 1 ΂̗]Ȋʂ́Av1 ̍\֐錾ƂĂ͕sł
     ŁA"S ^̈ꎞIȒlŏ T ^̃IuWFNg" ƂӖɂ
     ߂ł܂B

     lɁARXgNgA"S(*)()" ͒lƂ͍lȂ̂ŁA֐錾̈
     ɂ߂ł܂B

     ŏ̍śÂ悤ɏƂł܂B

         T v1 = S();

     Ӗ͊SɖmɂȂ܂Ȁݒ̌`ł́Aʏ͂ł
     Ƃ͂AꎞIȒlƂĔɑ傫Ȓl邱Ƃ܂B

     ̂悤ɃR[fBÔ͂߂ł܂B̗ŔAӖs
     mŁARpCقȂƌʂقȂ\邩łB

         T v( S() ); // Ȃ

  2. Solaris 8 update 2 уpb`ɂ __ctype `G[̏C

     Solaris 8 Iy[eBOɖ肪A<stdlib.h>  MB_CUR_MAX 
     gpƁA C++ RpCu__ctype ͒`Ă܂vƂG
     [Ԃ邱Ƃ܂B

     ̃oÓASolaris 8 update 2 Iy[eBOŏC܂B
     ́ASolaris pb` 109607-01 (SPARC)A109608-01 (IA) łCĂ
     ܂B

     ̃Abvf[gł܂̓pb`CXg[ĂȂꍇA̖
     ɂ́Awb_[ <stdlib.h> CN[hOɕWwb_[
     <ctype.h> CN[hĂB

  3. -instance=static  -instance=semiexplicit ƃev[g̐ÓI
     ̃T|[g

     ȑÕo[W C++ RpCł́Aev[g̐ÓIϐɑ΂
     ÓICX^X\bhƔICX^X\bhT|[g
     ܂łBo[W 5.2A5.3A5.4  5.5  C++ RpC
     ́A̐Ă܂B

  4. ֐Ƀ[JȐÓIϐɑ΂ extern CC֐̓̈Ⴂ

     ARM Kł́Aextern CC֐̊֐Ƀ[JȐÓIϐ̓t@C
     ɑ΂ĐÓIłBISO Kił́Aextern CC֐̊֐Ƀ[J
     ÓIϐ́ARpCjbgԂŋLO[oϐłB

     o[W 5.0  5.1  C++ RpCł́A݊ (-compat) 
     W (ftHg̃[h) ̂ǂ̃[hł ARM ̓삪Ă
     ܂Bɑ΂Ao[W 5.2A5.3A5.4  5.5  C++ RpC
     ł́A݊[h ARM ̓AW[h ISO ̓삪Ă
     ܂Bȉɂ̗܂B

     one.cc

         inline int inner() {
           static int variable = 0; return variable++;
         }
         int outer() { return inner(); }

     two.cc

         inline int inner() {
           static int variable = 0; return variable++;
         }
         int main() { return inner() + outer(); }

     ݊[h (-compat) ŃRpCꍇA 2 ̕ϐ͈قȂA
     main ̌ʂ 0 ɂȂ܂B

     W[h (ftHg[h) ŃRpCꍇ́A 2 ̕ϐ
     ɂȂAmain ̌ʂ 1 ɂȂ܂B W[hŌÂɂ
     ́ACC֐ static ɐ錾܂B

  5. ev[g̍\G[̌o

     ̃ev[g̍\͕słASun C++ 4  5.0 ł́AG[
     Ȃ܂łBo[W 5.1A5.2A5.3A5.4  5.5  C++ R
     pCł́A\G[Ƃĕ񍐂܂ (ftHg̕W[hŃR
     pCꍇ)B

       template<class T> class MyClass<T> { ... }; // `G[
       template<class T> class MyClass<T>;         // 錾G[

     ǂ̏ꍇAuMyClass<T>v́u<T>v͕sŁA̗Ɏ悤ɍ폜
     Kv܂B

       template<class T> class MyClass { ... }; // `
       template<class T> class MyClass;         // 錾

  6. -staticlib IvV -G ̓w肪\

     ȑÓA-staticlib IvVɂ́ALCu\zꍇɂ͖
     łB݂͗LłB



  ------------------------------------------------------------------------

E. _Ɖ

ł́A܂łɂ킩Ă\tgEFA̖_Ƃ̉ɂĐ
܂BXVɂẮAAbvf[g
http://sun.co.jp/software/sundev/suncc/hotnews.html QƂĂB

  1. RpCς .i t@CRpCG[𐶐
  2. ԃNG[
  3. N̖O̖
  4. Solaris Iy[eBOo[W 7 ɂ make ƕWCu
     wb_[t@C̖
  5. fobOc[Ao[֐ɗ]Ȑsp[^Ƃ
     bZ[WԂ
  6. Ił͂ȂOԂ̃IuWFNgev[gQƂłȂ
  7. Oԓ #pragma align ƕ
  8. ֐̑d`̉
  9. փXbhgp}`XbhΉ C++ vÓASolarais 8
     Iy[eBOŃfobOƃnOAbv

  1. RpCς .i t@CRpCG[𐶐

     __global ́AV xldscope RpCIvV̈ꕔƂ C++ 5.5
     ŒǉꂽL[[hłBOς݂ .i t@CÂRpC
     gpĐAĂ .i t@Co[W 5.5 ŃRpC
     ꍇA.i t@CŃL[[h __global ʎqƂĎgpĂ
     ƁAG[bZ[W\邱Ƃ܂B

     ̖ɂ́A.i t@C̐擪 #pragma disable_ldscope 
     ǉĂB̃R[hÂRpCΏۂƂĂꍇ́AV
     J[XR[sOL[[h (__global Ȃ) ͎gpł܂B
     ق̃t@CɃCN[hꍇ́A.i t@C̍Ō #pragma
     enable_ldscope Ƃsǉł܂B

  2. ԃNG[

     -xlang=f77 R}hsƁARpCvZXɃJ[G[
     ܂BG[ƂƂɓK؂ȎsCuCN[
     hɂ́A -xlang=f77,f90 s܂B

  3. N̖O̖

     ̏ꍇɁANɖ肪邱Ƃ܂B

        o const p[^tŐ錾Ă֐Aʂ̏ꏊ const p
          [^ȂŐ錾ĂB

          :

            void foo1(const int);
            void foo1(int);

          ̐錾͓łARpC͈قȂ镄t܂B
          ̖ɂ́Al̃p[^ const ƂĐ錾Ȃł
          BƂ΁A֐`̖{̂Ȃǂ̂ꏊ void
          foo1(int);

        o ֐ɓ^̃p[^ 2 Ãp[^
          typedef Ő錾ĂB

          :

            class T;
            typedef T x;
            // foo2 ͕^(|C^܂͔z)
            // p[^^
            void foo2(T*, T*)
            void foo2(T*, x*);
            void foo2(x*, T*);
            void foo2(x*, x*);

          ׂĂ foo2 錾͓ŁA͓l:w ɕKv
          ܂BARpC͈ꕔɈقȂsȂĂ܂B
          ̖ɂ́Aт typedef gp܂B

          typedef тĎgpłȂꍇ́AƂāA֐`
          t@C weak V{gpA錾Ƃ̒`𓙉ɂ
          Bɗ܂B

          #pragma weak "__1_undefined_name" = "__1_defined_name"

           -- ꕔ́̕A^[QbgA[LeN`ɂĈقȂ
          BƂ΁Asize_t  SPARC V9 A[LeN`ł unsigned long
          łAȊÕA[LeN`ł unsigned int łB́A2
          ̈قȂo[W̕ꂼ 1 ̃fɑ݂
          P[XłB̂悤ȏꍇ́A2 ̃vO}pӂAK؂ #if
          w߂Ő䂷Kv܂B

     ڍׂ́AwC++ ڍsKChxQƂĂB̃}jA HTML 
     ɃANZXɂ́AuEU file:/opt/SUNWspro/docs/ja/index.html 
     J܂B

  4. Solaris Iy[eBOo[W 7 ɂ make ƕWCu
     wb_[t@C̖

     WCut@Cɂ́u.hvڔtĂ܂B̑
     ɁAistreamAfstream Ȃǂ̖OtĂ܂B܂Aev[g
     \[Xt@Cɂ istream.ccAfstream.cc Ȃǂ̖OtĂ
     B

     Solaris 7 Iy[eBO <istream> ̂悤ȕWCuwb_
     [vOɃCN[hꍇAmakefile  .KEEP_STATE 
     ƁA肪܂BƂ΁A <istream> CN[hƁAmake
      istream s\Ƃ݂ȂAftHg̋KɊÂ istream.cc 
      istream \z悤Ƃ܂B̌ʁAG[bZ[W
     Ԃ܂Bistream  istream.cc ͂ƂɁAC++ CN[ht@Cf
     BNgɃCXg[Ă܂BȉɁA肤
     B

        o -r IvVgpāAftHg make K𖳌ɂB
          @gpƁA\zvZX~邱Ƃ܂B
        o make ̑ɁAdmake [eBeB𒀎[hŎgpBdmake
          -m serial
        o .KEEP_STATE ̎gpB

  5. fobOc[Ao[֐ɗ]Ȑsp[^Ƃ
     bZ[WԂ

     ݊[h (-compat=4) ł́AC++ RpC̓o[֐w|C^
     ̃N𐳂܂B̃G[̂߁AvO
     сAdbx  c++filt Ȃǂ̃fobOc[Ao[֐ɗ]Ȑs
     p[^ (o[֐ĂNX^Cv) ƕ񍐂
     ܂B̖ɂ́A-Qoption ccfe -abiopt=pmfun1 tO
     ܂BAʂɁÃtOgpă\[XRpC
     ƁÃtOȂŃRpC\[XƂ̊Ԃ̃oCix̌݊
     邱Ƃ܂BW[h (ftHg[h) ł́AO̕
     Ɋւ͂܂B

  6. Ił͂ȂOԂ̃IuWFNgev[gQƂłȂ

     vOŃev[gƐÓIIuWFNggpĂƁA`V
     {̃NG[܂B݃RpĆAIłȂO
     ԃXR[ṽIuWFNgɑ΂ev[g̎QƂT|[g܂
     B̗ōlĂ݂܂B

     static int k;
     template<class T> class C {
             T foo(T t) { ... k ... }
     };

     ̗ł́Aev[gNX̃o[͖OԃXR[vϐQƂ
     ܂BOԃXR[v̓t@CXR[v܂ނƂɒӂĂB
     RpĆAOԃXR[vϐQƂev[gNX̃o
     [T|[g܂B̃RpCPʂev[gCX^
     XƁAeCX^X͈قȂ k QƂ܂B܂AC++ ODR
     (One-Definition Rule) ᔽAR[h͒`ĂȂN
     ܂B

     [U[́Ak ǂ̂悤ɎgpAk ɂĂǂ̂悤Ȍʂ𓾂
     ɂƂÂAɎ֕@{ł܂BNXo[ł͂Ȃ
     ֐ev[g̏ꍇAIł͍̂ŏ̃IvV 3 ڂ̃IvV
     łB

       1. ϐɊOP[W

          int k; // ÓIł͂Ȃ

          ׂẴCX^X́Ak ̓Rs[gp܂B
       2. ϐNX̐ÓIo[ɂ

          template<class T> class C {
                  static int k;
                  T foo(T t) { ... k ... }
          };;

          ÓIȃNXo[͊OP[W܂Be C<T>::foo C
          X^X́Aʂ k gp܂BC<T>::k ̃CX^X́Aق
          ̊֐ŋLł܂Bʏ͂̃IvVgp܂B
       3. ϐ֐ɑ΂ă[Jɂ

          template<class T> class C {
                       T foo(T t) { static int k; ... k ... }
          };

          e C<T>::foo CX^X́A֐̊O͌ȂƎ k ̃R
          s[gp܂B

  7. Oԓ #pragma align ƕ

     Oԓ #pragma align gpꍇ́AgpKv
     ܂BƂ΁ÃR[hł́A#pragma align ͉̓܂
     B̖ɂ́A#pragma align  aAbA c 
     ̕ɒuKv܂B

       namespace foo {
         #pragma align 8 (a, b, c) // LłȂ
         // gp:
         #pragma aling 8 (__1cDfooBa_, __1cDfooBb_, __1cDfooBc_)
         static char a;
         static char b;
         static char c;
       }

  8. ֐̑d`̉

     C++ RpC̈ȑÕ[Xł́AC++ W̗vɏ]āA֐̑d
     `̉s܂łB̃[Xł́Ad`ꂽ֐
     ĂяoāÃoOCĂ܂BɁARpĆA
     яoۂɂ܂ȏꍇ͊֐sbLOAۂɂ͂ł
     ꍇɂAĂяo܂łƕ\肷ꍇ܂B

     ܂ł邱ƂbZ[WɊւɂ́AsvȂ̂
     ܂B ȑOɂ͕񍐂ȂA܂ɊւVG[
     ܂B

     ܂Ȋ֐Ăяo̎Ȍ 1 ́Agݍ݌^̃TuZbgɂ
     d`邱ƂłB


     int f1(short);
     int f1(float);
     ...
     f1(1); // ܂B1"  int ^
     f1(1.0); // ܂B1.0"  double ^

     ̖Cɂ́Af1 đd`ȂA邢͊g
     ׂĂ̌^ (intAunsigned intAlongAunsigned longA double) 
     d`s܂ (long longAunsigned long longA long double
     ^ꍇ܂)B

      1 ̎Ȍ̓NXɂ^ϊ֐ŁAɑd`ꂽZ
     q݂ꍇłB

     class T {
     public:
             operator int();
             T(int);
             T operator+(const T&);
     };
     T t;
     1 + t // ܂

     ̉ŹÂ悤ɉł̂ŁA܂ł

     T(1) + t     // d`ꂽZq
     1 + t.operator int()    // gݍ݂ int ǉ

     d`ꂽZq܂͌^ϊ֐gpł܂AgpƁA
     ܂Ɣf܂B

     ہA^ϊ֐̂̂́A܂ƔfꂽAӐ}Ȃꏊ
     ŕϊ肷邱Ƃтт܂BϊLɂKv
     ꍇ́A^ϊ֐ł͂ȂOt֐gpĂBƂ΁A
     operator int();

     ̕ύXɂAZq 1 + t ͂܂ł͂ȂȂ܂B T(1) + t Ƃ
     ߂ł܂Bق̉߂]ޏꍇ́A1 + t.to_int() ƋLqKv
     ܂B

  9. փXbhgp}`XbhΉ C++ vÓASolarais 8
     Iy[eBOŃfobOƃnOAbv

     փXbhgpč\zA}`XbhΉ C++ vÓA
     Solari 8 Iy[eBOŃfobO悤ƂƁAnOAbv
     B-R /usr/lib/lwp RpCIvVō\z 32 rbg}`X
     bhΉ C++ vÓAdbx ŎsƃnOAbv܂B-R
     /usr/lib/lwp/sparcv9 RpCIvVō\z 64 rbg}`X
     bhΉ C++ vÓAssȂĂꍇɂ͓ɁAn
     OAbv\܂B

     ̌ۂ́AC++ R[hW (ftHg) [h (-compat=5 RpC
     IvVgp) RpCꍇɋN܂B݊[h (
     -compat RpCIvVgp) RpCꍇɂ͋N
     B

     ptH[}XƂđփXbh̎gplĂꍇAftHg
     ̃XbhCugpāA}`XbhΉ̃vOŏ
     fobO邱Ƃ߂܂BփXbh́ǍŎgpĂ
     B



  ------------------------------------------------------------------------

F. ƌ̖݊

ł́AуVXe܂͂̑̃\tgEFAƂ̖̌݊
Đ܂B

  1. ɁAC++ RpC 5.5 [XŖ炩ɂȂĂ OpenMP ̐
     ܂B

        o ̈Ő錾ÓIȃNXIuWFNg

          _ł́AOpenMP ̈ɂÓIȃNXIuWFNg̐錾
          Sun ̓T|[gĂ܂B̂悤Ȑ錾ƁAG[
          ܂B̃G[𐶐R[h̗܂B

          #pragma omp parallel
          {
            static A a;           // A ̓NX̌^
            :
          }
          Error: Static non-POD decl not allowed in parallel region.

          ̂悤ɃR[hύXƁA]܂삪܂B

          {
            A a;
            #pragma omp parallel // shared ftHg
            {
              :
            }
          }

        o W̃ev[gCu

          OpenMP ̈̕ std::string gpƁARpCG[܂
          ͎sG[\܂Bstlport4 Cug
          p邱Ƃł̖肪łꍇ܂B

        o OpenMP f[^߂ŎgpNXo[ϐ

          Sun ́AOpenMP f[^߂ɑ΂NXo[ϐ̋Lq̓T|[g
          Ă܂BɁA邽߂̏܂B

             + shared

               shared (ftHg) Ɛ錾 OpenMP ̈Ńo[
               gp܂B

             + private

               ̈œK؂Ȍ^̐Vϐgp悤ɐ錾܂B

             + firstprivate

               ̈œK؂Ȍ^̐Vϐ錾A(shared) o[
               ̒lł̕ϐ܂B

             + lastprivate

               ̈̊OœK؂Ȍ^̐Vϐ錾A
               lastprivate ߂ɔzuAexit ̂Ƃł̒lo[ϐɑ
               ܂B

        o catch ubN̈̕

          catch ubN OpenMP ̈悪oƁARpCG[
          ܂B


          try() {
              :
          }

          catch(...) {
            #pragma omp parallel
            {

            }
          }

        o OpenMP ɂĂ̓R}hs؂ւ -xF=%all ̓T|[gȂ

          ̐؂ւgpƁAsZOgON\
          ܂B

        o ̈ł firstprivate  omp for ɂ㑱̎gp

          NXIuWFNgI[蓖ĂRs[RXgN^
          ÃIuWFNg̈ firstprivate ƂēnA
           omp for ̈Ŏgpꂽꍇ́AsȌʂꂽAZO
          gO肵܂BɁA肪\R[
          h̗܂B

          int main(void)
          {
              int i;
              vector<int> v(10);

              for (i = 0; i < 10; i++)
                  v[i] = 0;

              #pragma omp parallel firstprivate(v)
              {
                  #pragma omp for
                  for (i = 0; i < 10; i++)
                      v[i] = omp_get_thread_num();
              }
          }

          L̗ł́Aa.i[j] ̃Recj邩AZOgO
          ܂BɁA̖R[h܂B

          #pragma omp parallel shared(v)
          {
                  vector<int> tmp = v;
                  #pragma omp for
                  for (i = 0; i < 10; i++)
                      tmp[i] = omp_get_thread_num();
          }

  2. x86 ɂœKŃJ[XR[v@\Ȃ

     oO 4829700 ŐĂ悤ɁAx86  -xldscope=hidden ܂
     -xldscope=symbolic w肷ƁAœK -O ܂ -xO[1|2|3|4|5] 
     -xldscope IvV @\܂B

  3. -xia  -library=stlport4 ̖̌݊

     C++ ̋ԉZ STLport C++ CuƂƂɎgp邱Ƃ͂ł܂
     B-xia IvVgpvÓAwC++ Interval Arithmetic
     Programming Referencex̐ǂɃRpCуN邱Ƃ
     ł܂B

  4. C++ LCũpb`

     eΉvbgtH[ɂāÃ[X Sun ONE Studio 8 ŃT
     |[g Solaris Iy[eBO̃o[WƂ SUNWlibC pb
     `pӂĂ܂B̃pb`́ARpCɎgpVXe
     ȂA쐬ꂽvOғ邷ׂẴVXeɃCXg[
     Kv܂B̃pb`CXg[ȂƁAꕔ̃vO
     NȂAsG[ňُI肷邱Ƃ
     BƂ΁AJ[玟̂悤ȃbZ[W񍐂邱Ƃ
     B

                                                                First
      Undefined symbol                                          referenced
                                                                in file
      std::basic_ostream<char,std::char_traits<char>
      >&operator<<(td::basic_ostream<char,std::char_traits<char>test.o
      >&const RWCString&)

         ld: fatal: Symbol referencing errors. No output written to test

     ̂悤ȃG[bZ[WԂ邱Ƃ܂B


        [qg: NX́ACCĂ炸AłȂ 1 ڂ
         z֐`Ă邩mFĂB]


     񃊃[Xꂽ Sun ONE Studio 8 ̕K{pb`ƃIvVpb`ɂ
     ẮAwSun ONE Studio 8 [Xm[gxQƂĂB [
     Xm[ǵASun ONE Studio 8 CD 
     /cdrom/ml_devpro_v10n1_sparc/docs/ja/release_notes_ja.html  HTML
     `Ŋ܂܂Ă܂B [Xm[ǵASun ONE Studio 8 Web TCg
     ̃}jAy[W
     http://sun.co.jp/software/sundev/suncc/documentation ł܂B

  5. RpC̃o[WԂ̖̌݊

     ł́AC++ RpCo[W 4.0A4.1A4.2 ƎɎo[W
     ̖̌݊ɂĐ܂B

             o Sun WorkShop C++ (5.0) RpC
             o Forte Developer 6 C++ (5.1) RpC
             o Forte Developer 6 update 1 C++ (5.2) RpC
             o Forte Developer 6 update 2 C++ (5.3) RpC
             o Forte Developer 7 (5.4) RpC
             o Sun ONE Studio 8 (5.5) RpC

       a. LbVo[ẄႢɂRpCG[
       b. C++ C^tF[X̖̌݊
       c. Tools.h++ ̎gp
       d. ̃ev[g|Wg̎gp -ptr IvV
       e. const o[֐̃|C^܂ 4.0.1 CuƂ̃N
       f. ȑÕRpCŃRpCCuƂ̃N
       g. قȂo[WŐꂽIuWFNgR[h̍


       a. LbVo[ẄႢɂRpCG[

          RpCύXƂ́AK SunWS_cache TufBNg
          ނׂẴfBNgɑ΂ CCadmin -clean sĂ (
          rm -rf SunWS_cache ł)B̑sȂƁÂ悤ȃRp
          CG[邱Ƃ܂B

             + SunWS_cache: Error: Database version mismatch
               <path>/SunWS_cache/CC_version.

             + "<path>/SunWS_cache/CC_state",
               line 3: Error:"" not allowed here. ** Assertion ** : 0

       b. C++ C^tF[X̖̌݊

          o[W 5.0A5.1A5.2A5.3A5.4A 5.5  C++ RpC
          o[W 4.0A4.1A 4.2  C++ RpCƂ̊ԂɃoCi
          x̌݊͂܂ (5.0A5.1A5.2A5.3A5.4A5.5 ̃Rp
          CɂRpC -compat IvVgpꍇ)B
          ́AANSI/ISO C++ Kiɒ`Ădlɍ킹āANX
          zuĂяȍAO̕@ύXꂽƂłB

          o[W 5.0A5.1A5.2A5.3A5.4  5.5  C++ RpC
          x̌݊܂B

          ڍׂ́AwC++ ڍsKChxQƂĂB̃}jA
          HTML łɃANZXɂ́AuEU
          file:/opt/SUNWspro/docs/ja/index.html J܂B

       c. Tools.h++ ̎gp

          C++ RpĆAftHgŕW iostream gp܂B
          Tools.h++ W[hŎgpꍇ́A-library=rwtools7_std Iv
          Vgp邩A܂͎Ɏ悤ɁARpCIvV
          libiostream w肷Kv܂B

          example% CC -library=rwtools7_std foo.cc -> W iostreams gp
          example% CC -library=rwtools7,iostream foo.cc -> ] iostreams 
          gp

          A(-compat RpCIvVgp) ݊[hł́A
          WCugpłȂ߁A-library=rwtools7_std w肷
          Ƃ͂ł܂B

          example% CC -compat foo.cc -> ݊[hł͕WCugp
          łȂ

          -library=rwtools7A-library=rwtools7_dbgA-library=rwtools7_stdA
          ܂-library=rwtools7_std_dbg  -library=stlport4 ƂƂɎgp
          ȂłBTools.h++  STLport ł̓T|[gĂ܂B

          -library=rwtools7_std IvV -library=rwtools7,iostream Iv
          VŐꂽoCiԂɌ݊͂܂B̃IvV
          ̂ǂ炩gpꍇ́A\[Xt@CׂēIvV
          ŃRpCKv܂B

          ܂AwC++ ڍsKChxQƂĂB̃}jA HTML
          łɃANZXɂ́AuEU
          file:/opt/SUNWspro/docs/ja/index.html J܂B

       d. ̃ev[g|Wg̎gp -ptr IvV

          5.0 O C++ RpCł́A-ptr IvVgpāAev
          [g̃CX^XɎgp郊|Wgw肵Ă܂Bo
          [W 5.0A5.1A5.2A5.3A5.4A 5.5  C++ RpC
          ́A-ptr IvV͕svłB́ARpCVXeAǂ
          IuWFNgt@CɑΉev[g|WgɊ܂܂
          ev[gCX^XACC R}hŎw肳ꂽo͐fB
          Ng̃|Wgɏނ߂łB

          ̃[XŁA-ptr IvV͔p~ĂARpC͂
          ̃IvV𖳎܂BIvV͖ƂĂAׂĂ
          RpCR}h -ptr ͍폜ĂĂB̗ŔA
          ̃[XŁAʂ̓s -ptr Ď\邽
          ߂łB

           -- ̃AvP[V⃉CůԂ 1 ̃ev[g
          |WgL邱Ƃ́AȑOł܂BL悤Ƃ
          ƁARpCsȂƂȀꍇ́Aev[
          gĒ`āAsɗ\łȂʂ܂Bڍׂ́A
          wC++ [U[YKChxQƂĂB

       e. const o[֐̃|C^܂ 4.0.1 CuƂ̃N

          C++ 4.0.1 RpC const o[֐̃|C^ɑ΂Đ
          镄́Ao[W 4.1A4.2A5.0A5.1A5.2A5.3A5.4A
          5.5 ̃RpCeƂ͈قȂ܂BC++ RpCgp
          ĂāA4.0.1 ō\zꂽA܂ރCuƃNł
          Ȃꍇ́ÃCuăRpC邩A-compat -Qoption
          ccfe -abirel=4.0.1 tOw肵āAvO̎c蕔Rp
          CKv܂B

           -- ̃[Xł -abirel=4.0.1 tÕT|[gp~
          \܂B

       f. ȑÕRpCŃRpCCuƂ̃N

          C++ 4.0.1  C++ 4.1 RpCł́Aextern uCv֐ŃCX
          ^Xꂽev[gɑ΂āA͕s\ȕ
          Ă܂BāAfobOc[삵܂łB
          ̖͉܂Aꕔ[U[Ao[W 5.0A
          5.1A5.2A5.3A5.4A 5.5  C++ RpCŃRpCI
          uWFNgo[W̃RpCŃRpCCuƃ
          NłȂƂ̕񍐂܂B ̖͂܂ɂ܂
          Aꍇ́Âǂ炩sȂĂB

             + Sun ONE Studio C++ (5.5) RpCgpăCuăR
               pC邩A邢
             + -compat  -Qoption ccfe -abirel=4.1 tOgpāA
               Sun ONE Studio 8 C++ (5.5) RpCŐVIuWFNgR
               pCB

           -- ̃[Xł -abirel=4.1 tÕT|[gp~
          \܂B

       g. قȂo[WŐꂽIuWFNgR[h̍

          ݊[hƕW[h̃R[h݂ĂȂAقȂo[W
           C++ RpCŐIuWFNgR[h𓯂vO
          ɍ݂邱Ƃł܂BAŏIvÕNɂ́A
          pĂRpC̒ōŐṼo[WgpKv
          B

           -- o[W 4.2 ŐR[hƕW[h C++ R[h
          N邱Ƃ͂ł܂B



  ------------------------------------------------------------------------

G. Lq̌̒

C++ RpC}jA̋łɂ́Aȉ̋Lq肪܂B

   * ł́wC++ [U[YKChx̑ 7 ́uev[g̃RpCvA
     7.8 ߂ŁAuCC_tmpl_opt Ƃev[gIvVt@Cf
     BNg SUNWS_CONFIG_NAME ϐgpĕύXłvƋLq
     Ă܂A͌łB̃fBNg̖O SUNWS_CONFIG_NAME
     ϐݒ肵ĕύX邱Ƃ͂ł܂B

  ------------------------------------------------------------------------

H. Cu̍Ĕzzɂ

   * s\t@CÃt@CɎꂽT̓ICuKv
      ꍇ́ACZXɊÂāÃCuĔzzł܂B

        /opt/SUNWspro/READMEs/ja/runtime.libraries

      - Sun ONE Studio 8 \tgEFA /opt ȊÕfBNgɃCXg
     [Ăꍇ́AVXeǗ҂Ɏۂ̃pXq˂B

     ǂ̂悤Ȍ`ԂłAwb_[t@CA\[XR[hAIuWFNgW
     [AIu WFNgW[̐ÓICuO҂ɔztAJ邱
     Ƃ͂ł܂B

     gpCZX́ACD-ROM ̃P[X̗ʂɂGh[U[IuWFNg
     R[hCZXɋLڂĂ܂B

   * libCstd  (܂) libiostream ̋LCuo[Wgp
     ꍇ́A 2 ̃IvV܂B
       1. iƂ SUNWlibC pb`zz܂B܂
       2. JX^} http://www.sunsolve.sun.com ̂悤ȃT Web TCg
          ŐV SUNWlibC pb`_E[hKv܂B̃pb
          `͖ŁAxłzz\łB

     ]ǂACuÓIɃNꍇ́AȊÕANV
     ANZXKv܂B



  ------------------------------------------------------------------------

I. Ή̌dl

   * C++ RpC (CC) ́AC++AISO IS 14882:1998AvO~O C++
      ISO KiɑΉĂ܂B̃[Xł̓T|[gĂȂ ISO K
     i̗ṽXgŐ܂B

        o ̂悤ȁA֐ev[g̊֐p[^Xg̃ev[g
          ̌^łȂp[^܂ގ

          template<int I> void foo(mytype<2*I> ) { ... }

        o ev[gp[^ev[g (ev[gp[^ƂĂ
          ev[g)

        o ėp

        o ev[gRpC̃GNX|[gf́AT|[gĂ܂
          B

   * 1990 C Ki 1994 Addendum ɏoA1998 C++ Kĩt@XɊ܂
     ꂽ̊֐́ASolaris Iy[eBO̃o[W 7  8
     Œ񋟂Ă܂Ao[W 2.6 ł͒񋟂Ă܂BSolaris Iy
     [eBO̃o[W 2.6 ł́Ãwb_[ɂ錾̕\͂
     ASolaris sCuł̊֐gp邱Ƃ͂ł܂B

       btowc
       fwide
       fwprintf
       fwscanf
       mbrlen
       mbrtowc
       mbsinit
       mbsrtowcs
       swprintf
       swscanf
       vfwprintf
       vswprintf
       vwprintf
       wcrtomb
       wcsrtombs
       wcsstr
       wctob
       wmemchr
       wmemcmp
       wmemcpy
       wmemmove
       wmemset
       wprintf
       wscanf

   * 2 ̈قȂRpCjbgœCC̃AhXr
     ƁAʂɂȂ͂łBAC++ RpĈ̃[Xł́A
     ʂɂȂ܂B ʂȂƂƂ́A|C^r
     ꍇɂ݂̂킩܂B

   * C++ RpČs[XƋ[X̃oCi݊ێ邽
     ߁Aꕔ libCstd @\Ă܂B ڍׂɂẮA
     file:/opt/SUNWspro/docs/ja/index.html  C++ FAQ Ɋւ郊N𒲂ׂ
     B



  ------------------------------------------------------------------------

Copyright xA?2003 Sun Microsystems, Inc. All rights reserved. Use is
subject to license terms.
