                                               : 2003 ǯ 3  28 

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

     ܼ

       A. Ϥ
       B. Sun ONE Studio 8C++ ѥˤĤ
       C. ѹ줿ǽ
       D. եȥν
       E. Ȳ
       F. »ȸߴ
       G. Ҥθ
       H. 饤֥κۤˤĤ
       I. ̤бθ



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

     A. Ϥ

     ʸǤϡSun Open Net Environment (Sun ONE) Studio 8,
     Compiler Collection  C++ ѥ˴ؤ󶡤ޤ
     ʸǤѥ C++ ѥΥС 5.5 ȸƤ־
     ޤ ޤʸǤϺΥ꡼󶡤뿷ǽ
     եȥνˤĤƲ⤹ȤȤˡΤ»
     ࡢӸߴˤĤƤޤʸεƤ
     եȥޥ˥奢ξ򹹿ޤ佼ޤ

     ʥޥ˥奢

        * ꡼Ρ: http://docs.sun.com/ Ǥޤ ꡼
          ΡȤξϡʤ Readme եξͥ褷
          
        * Compiler Collection Υޥ˥奢: ʤΥޥ˥奢ڡ
          HTML Ǥ Readmeӥޥ˥奢ϡ
          /opt/SUNWspro/docs/ja/index.html Ǥޤ
        * Compiler Collection ȯԸ꥽ݡ: Ѳ⡢
          Compiler Collection ϢΥɥȡμ١ʤɤˤĤ
          Ƥϡ Compiler Collection Developer Resources Portal (Ѹ)
          򻲾ȤƤ

      - Compiler Collection եȥǥեȤ /opt ǥ쥯
     ȥ˥󥹥ȡ뤵Ƥʤϡƥбѥ
     ƥԤ˳ǧƤ Υޥ˥奢κ饢
     Ǥ C++ ޥ˥奢ϰʲΤȤǤ

        * C++ FAQ
        * C++ 桼
        * C++ ܹ Readme
        * C++ ܹԥ
        * ɸ C++ 饤֥ꡦ饹ե / Standard C++
          Library Class Reference (Ѹ)
        * ɸ C++ 饤֥ꡦ桼
        * Tools.h++ 7.1.0 Readme
        * Tools.h++ 桼
        * Tools.h++ 饹饤֥ꡦե󥹥ޥ˥奢
        * ֱ黻 Readme
        * C++ ֱ黻ץߥ󥰥ե / C++ Interval
          Arithmetic Programming Reference (Ѹ)
        * إ饤֥ Readme
        * ¹Ի饤֥ Readme
        * ͷ׻
        * 󥯥󥿥󥫡 Readme
        * CC(1) Υޥ˥奢ڡ
        * 3C++ ޥ˥奢ڡ (ɸ C++ 饤֥)
        * 3CC4 ޥ˥奢ڡ (ߴ⡼ɥ饤֥)

     ʸΥƥǤɽˤϡޥɥץץȤǼΥޥ
     ɤϤޤ

             CC -xhelp=readme

     ʸ HTML ǤɽˤϡΥե˥ޤ

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



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

     B. Sun ONE Studio 8C++ ѥˤĤ

     Υ꡼ C++ ѥϡSolaris[tm] ڥ졼ƥ󥰴Ķ
     SPARC (R); ץåȥեǤ С 789 ȡSolaris 
     ڥ졼ƥ󥰴Ķ x86 ץåȥեǤΥС789 
     ѤǤޤ

     ΥС 5.5  C++ ѥϡС 5.05.15.2
     5.35.4 5.5  C++ ѥΥɤӥХʥ
     ɤȾߴǤʤC++ 5.5 ѥѤơС
      5.05.15.25.3 5.4  C++ ѥѤ˺
     줿ɤ򥳥ѥǤޤޤС 5.05.1
     5.25.35.4  C++ ѥˤä줿֥ȥ
     ɤ C++ 5.5 ѥ줿֥ȥɤȥ󥯤Ǥ
     ޤ󥯤ϡ˺ǿΥѥ顢Ĥޤ꺣Υ꡼
     ǤС 5.5 ѤƤ

     C++ 5.5 ѥˤϡC++ 4.2 ѥѤ˺줿
     ɤ򥳥ѥ뤹뤿 -compat ץѰդƤޤ
     -compat ץϡС 5.0 Ƴ줿ץ
     



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

     C. ѹ줿ǽ

     ǤϡΥ꡼ C++ ѥ˿ɲä줿ǽ
     줿ǽޤSun ONE Studio 8 Τ¾Υݡͥ
     ȤˤĤƤϡSun ONE Studio 8 οǽ٤򻲾ȤƤ
     륷ƥޤϥͥåȥǤΥޥ˥奢˥
     ϡfile:/opt/SUNWspro/docs/ja/index.html 򳫤Ƥ
     http://docs.sun.com ˤƱޥ˥奢뤬ǺܤƤޤ

     Ūʵǽ
     ƥץ졼ȥå:-instances
     ѿפ˥󥫡ޥåץե: -xldscope
     ޥѤ˶Ϥʿǵǽɲ:-xdumpmacros
     VIS[tm] Developers Kit Υݡ:-xvis (SPARC)
     C99 ¹Ի饤֥ȼ¹ԻĶΥݡ: -xlang=c99
     UTF-16 ʸƥΥݡ:-xustr
     OpenMP Υݡȳ:-xopenmp
     ɤ줿 -xprofile (SPARC)

     ®ʥѥ
     ʸåι®:-xe
     -xprofile_ircache ˤ®ʥץե (SPARC)
     ʣƥץ졼ȥ󥹥󥹲: -instlib=filename
     -template=geninlinefuncs ˤؿ
     ץꥳѥѤߥإå-xpch
     -xjobs=n ˤʣץåλ (SPARC)

     ưפʰܿ
     -xmemalign ˤܿδʰײ
     -xchar ˤ char 
     -xport64 ˤܿ줿ɤΥǥХå

     ѥեޥ󥹤θ
     󥫡ˤäƥݡȤ롢ǡΥåɥʵΰ
     Ѥ¹Իǽθ:-xthreadvar (SPARC)
     ڡեȤ򸺤餹Ȥˤ¹Իǽθ: -xF
     ץ饰ޤˤ¹Իǽθ
     Link-Time Optimizer ˤ¹Իǽθ: -xlinkopt (SPARC)
     -xpagesize=n ˤ¹Իǽθ (SPARC)

     ٹȥ顼ɲ
     -erroff ˤٹåΥե륿
     -errtags  -errwarn ˤ륳ѥ
     -filt=[no%]stdlib ˤ롢ɸ饤֥̾Υե륿󥰤θ



     ƥץ졼ȥå:-instances

      C++ ѥ꡼Ǥϡƥץ졼ȤΥ󥹥󥹲ǽ
     ˸夷ƤޤǥեȤΥƥץ졼ȥ󥹥󥹲
     Ѥץϡ1 ĤΥǥ쥯ȥ 1 ĤΥץ
     ۤǤʤȤ¤뤳Ȥʤʤޤ

     إ󥹥󥹲ǥ (-instances=static ʤ) ˰¸ۤȤ
     ɤΥץ⡢ǥեȤΥ󥹥󥹲ǥѤǤ
     褦ˤʤޤ

     ƥץ졼ȥ󥹥󥹲ǽθѹˤƥץ졼ȥ
     夬פˤʤäᡢѥ֤ṳ̂ǤޤޤŪ
     νʣ򤱤뤳ȤǤ뤿ᡢ¹ԥץΥ̾ˤ
     ʤޤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -instances 򻲾ȤƤ

     ѿפ˥󥫡ޥåץե: -xldscope

     Υ꡼ǤϡưŪ饤֥ΥܥΥݡȤ
     Τ 2 ˡѤǤ褦ˤʤޤεǽϥ
     פȸƤФ졢Ƕˤʤäƥ󥫡ޥåץեˤäƥ
     ݡȤ褦ˤʤäΤǤޤΥ꡼ϥ
     ˿ҤळȤǤ褦ˤʤޤ__global
     __symbolic __hidden 򥳡ľФ褯ޥ
     ץեѤɬפޤ󡣤⤦ 1 Ĥˡϡޥ
     Ԥ -xldscope ꤹ뤳ȤˤäѿפΥǥե
     񤭤ΤǤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xldscope 򻲾ȤƤҤξܺ
     ϡC++ 桼ɡ٤ 4 ϡLanguage ExtensionsפǽҤ
     Ƥޤ

     ޥѤ˶Ϥʿǵǽɲ:-xdumpmacros

     Υ꡼ǤϡץꥱΥޥưפʤ褦
     ˡץ饰ޤ 2 Ĥȿѥ饪ץ 1 ɲä
     ޤˤϡƥإåޥޤޤ
     

     ޥɹԤ -xdumpmacros ץѤ뤳Ȥǡޥ
     ǧꡢץΤɤǥޥβޥλ
     ѤʤƤ뤫ǧǤޤʤˤϡ
     ľܿ dumpmacros ץ饰ޤ end_dumpmacros ץ饰ޤѤ
     

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xdumpmacros 򻲾ȤƤ

     VIS Developers Kit Υݡ:-xvis (SPARC)

     VIS ̿᥻å Software Developers Kit (VSDK) Ƥ륢
     ֥ƥץ졼ȤѤƤϡ-xvis=[yes|no] ץ
     ѤƤǥեȤ -xvis=no Ǥ

     VIS ̿᥻åȤϡSPARC v9 ̿᥻åȤγĥǽǤ UltraSPARC
     ץå 64 ӥåȤǤޤޤʥꡢä˥ޥ
     ǥץꥱǤϥǡ 8 ӥåȤޤ 16 ӥå
     ˸ꤵ뤳ȤޤVIS ̿ 1 Ĥ̿ 4 Ĥ 16 ӥ
     ȥǡǤ뤿ᡢ᡼󥰡ʥ
     ǥӥǥͥåȥ󥰤ʤɤΤ褦ʥ˥塼ǥ
     륢ץꥱΥѥեޥ󥹤˸夵ޤ

     VSDK ˤĤƤξϡhttp://www.sun.com/processors/vis 򻲾Ȥ
     Ƥ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xvis 򻲾ȤƤ

     C99 ¹Ի饤֥ȼ¹ԻĶΥݡ: -xlang=c99

     C99  (ISO/IEC 9899:1999ץߥ󥰸 - C) 򥵥ݡȤ
     륪ڥ졼ƥ󥰥ƥǤϡ-xlang=c99  C 饤֥ؿ
     ӽФ C ɤ C++ ɤ C99 ¹ԻưꤷޤC99
     ưˤϡC ʣǿΤ褦 C ѥǤ -xc99=%all 
     λѤ˰¸Τ⤢Сprintf Τ褦ˤΥץ
     ˺ʤΤ⤢ޤ

     C99 ݡȤϥѥȥ⡼ (-compat=4) ǤϻѤǤʤȤ
     դƤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xlang 򻲾ȤƤ

     UTF-16 ʸƥΥݡ:-xustr

     ISO10646 UTF-16 ʸƥѤݲ줿ץꥱ
     򥵥ݡȤɬפϡ-xustr=ascii_utf16_ushort 
     ƤĤޤꤳΥץϡ֥ȥե
      UTF-16 ʸѴʸƥ뤬ɤ˴ޤޤ
     ˻ѤޤΥץꤷʤȡѥ 16
     ӥåȤñʸƥǧԤޤ󡣤Υץ
     ꤹȡU"ASCII_string" ʸƥʤûȤ
     ǧޤ Τ褦ʸϤɤεʤǤޤƤ
     ޤ󤬡 ΥץѤ뤳Ȥǵʳ C++ ǧ
     ȤǤޤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xustr 򻲾ȤƤ

     OpenMP Υݡȳ:-xopenmp

     C++ ѥŪ󲽤Τ OpenMP 󥿥եμ
     ³Ƥޤ

     C++ ѥϡΤ褦 OpenMP ǽĥޤ

        * OpenMP ǡǥ饹֥ȤѤǤ
        * 饹Сؿ OpenMP ץ饰ޤѤǤ

     ϡOpenMP ΰˤ륯饹֥ȤλѤȡ
     Сؿˤ OpenMP ʸλѤ򼨤Ƥޤ

     #include <omp.h>
     class A{
     public:
         int i;
         A(){i = 5;};          // 󥹥ȥ饯
         A(const A& a){ i = a.i;};    // ԡ󥹥ȥ饯
         A& operator=(const A& a)      // 
         {
             if (this != &a)
               i = a.i;
             return *this;
         };
         ~A(){};                       // ǥȥ饯
         void foo();
     };

     void A::foo()             // ץ饰ޤѤСؿ
     {
       #pragma omp parallel
             i = omp_get_thread_num();
     }

     main()
     {
       A a, b, c;
       b.i = 10;
       c.i = 100;
       // OpenMP ǡǻѤ륯饹֥
       #pragma omp parallel private(a) firstprivate(b)
       {
             #pragma omp for lastprivate(c) private(a) // Ƹͭ
             for(int i = 0; i < 50; i++)
                 c.i = i * a.i;
             a = b;
       }
       a.foo();
     }

     ˡͭ OpenMP ץǤδΤ򼨤
     

        * 饹֥Ȥ threadprivate ѿȤƻѤ
          ưʤ礬
        * OpenMP ΰ try ֥å catch ֥åưʤ
          礬
        * OpenMP ǡޤ OpenMP ΰ std::string 饹
          ֥ȤѤȡ۾ưȤ

     Υѥ饪ץξܺ٤ϡCC(1) ޤ Sun ONE Studio 8
     Compiler CollectionC++ 桼ɡ٤ -xopenmp 򻲾Ȥ
      Sun  OpenMP ξܺ٤ϡSun ONE Studio 8 Compiler
     CollectionOpenMP API 桼ɡ٤򻲾ȤƤ

     ɤ줿 -xprofile (SPARC)

     -xprofile ץϼΤ褦˲ɤޤ

        * ͭ饤֥Υץե󥰤򥵥ݡ
        * -xprofile=collect -mt ˤ롢åɤФưʥץե
          
        * 1 ĤΥץեǥ쥯ȥʣΥץޤ϶ͭ
          饤֥ץե󥰤褦˥ݡȤ

     -xprofile=use Ѥ뤳ȤǡѥϰդǤϤʤ١̾
     ʣΥ֥ȥեΥǡ¸줿ץեǥ
     쥯ȥǡץեǡ򸫤Ĥ뤳ȤǤ褦ˤʤޤ
     ѥ餬֥ȥեΥץեǡ򸡽ФǤ
     ʤϡѥϿץ
     -xprofile_pathmap=collect-prefix: use-prefix 󶡤ޤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xprofile  -xprofile_pathmap 򻲾ȤƤ
     

     ʸåι®:-xe

     -xe ꤷ硢ѥϹʸ顼Ọ̇̄θå
     ǡ֥ȥɤޤ

     -xe ץϡѥˤäƥ֥ȥե
     ɬפʤ˻ѤƤȤСɤΰ
     顼åθʤȤƤϡ-xe Ѥ뤳
     ȤԽȥѥκȤ򥹥ԡɥåפǤޤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xe 򻲾ȤƤ

     -xprofile_ircache ˤ®ʥץե (SPARC)

     ե¸줿ѥǡƻѤ뤳Ȥˤäƻ
     ѥեΥѥ֤ṳ̂ϡ
     -xprofile_ircache[=path]  -xprofile=collect|use ʻѤƤ
     

     礭ʥץξϡ֥ǡ¸뤿ᡢѥե
     Υѥ֤ṳ̂ޤǡ¸뤳Ȥǥǥ
     ̤׷郎礹ǽ뤳ȤդƤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xprofile_ircache 򻲾ȤƤ

     ʣƥץ졼ȥ󥹥󥹲: -instlib=filename

     -instlib=filename ϡ饤֥ȸߤΥ֥Ȥǥƥץ졼
     󥹥󥹤ʣ뤳Ȥػߤ˻ѤƤ
      ̤ˡץब¿Υ󥹥󥹤饤֥ȶͭ
     ϡ-instlib=filename ѥ֤ṳ̂뤫ɤ
     ǧƤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -template-instances -pti 򻲾ȤƤ
     

     -template=geninlinefuncs ˤؿ

     ̾ C++ ѥϡؿƤӽФƥ饤󲽤Բǽʾ
     饤ƥץ졼ȴؿޤ󡣤
     -template=geninlinefuncs ꤹȡޤǤ뤳Ȥ
     ʤä󥹥󥹲줿饹ƥץ졼ȤΥ饤
     ؿ򥤥󥹥󥹲ޤδؿΥ󥱡ϡ٤Ƥ
     ȤǤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -template 򻲾ȤƤ

     ץꥳѥѤߥإå-xpch

     Υѥ꡼ǤϡץꥳѥѤߥإåȤǽ
     󶡤ƤޤץꥳѥѤߥإåեѤȡ
     ̥ɤĶ̤Υ󥯥롼ɥե륻åȤ򥽡
     뤬ͭƤ˥ץꥱΥѥ֤ṳ̂
     礬ޤϡ1 ĤΥե뤫ϢΥإå
     ե˴ؤΥեƥѥ뤹
     䡢ƱإåĤۤΥե򥳥ѥ뤹
     ˤξѤȤˡǹԤޤεǽϡ-xpch 
     ץ -xpchstop ץ #pragma hdrstop ʻѤ뤳
     ȤѤǤޤ

     ܺ٤ϡCC(1)  -xpch ץ -xpchstop ץ򻲾Ȥ
     Sun ONE Studio 8 Compiler CollectionC++ 桼
     ɡ٤Ǥ⡢Υץ #pragma hdrstop ξܺ٤Ƥ
     ޤ

     -xjobs=n ˤʣץåλ (SPARC)

     -xjobs=n ץϡȤԤ˥ѥ餬ץ
     οꤹ뤿˻ꤷޤΥץϡޥ CPU 
     ˤӥɻ֤ṳ̤̂ޤߡ-xjobs 
     -xipo ץȤʻѤǤǽޤ-xjobs=n ꤹ
     ȡ߼³ץƥޥϤޤޤʥե򥳥ѥ뤹뤿
     ˸ƤӽФȤǤ륳ɥͥ졼󥹥󥹤κȤ
      n Ѥޤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xjobs 򻲾ȤƤ

     -xmemalign ˤܿδʰײ

     -xmemalign ץϡǡ˴ؤ륳ѥ
     뤿˻Ѥޤä꡼ʤ
     ˥ɥͥ졼椷Ķä
     ˥ץư椹뤳ȤǡSolaris ˥ɤܿ
     䤹ʤޤ

     -xmemalign ץϡɬװʾ˶󤬹Ԥ줿ǡΥѥ
     ޥ󥹤᤿ꡢ̩̾˥ѥå줿¤Τ˥
     ˤѤޤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -memalign 򻲾ȤƤ

     -xchar ˤ char 

     -xchar[={signed|s|unsigned|u}] ץϡchar ʤ
     줿ƥफΥɰܿʰײ뤿ΤΤǤ
     Τ褦ʥƥफܿԤΥץѤ
     ǤҤѹơդפޤϡʤפŪ
     ˻ꤹɬפΤϡchar ˰¸륳ɤǤ
     ܺ٤ϡC++ 桼ɡ٤ޤ CC(1) 򻲾ȤƤ

     -xport64 ˤܿ줿ɤΥǥХå

     ο -xport64 ץϡ64 ӥåȴĶ˥ɤܿ
     ˻ѤƤΥץѤȡV7 (ILP32) 
     ɤ 32 ӥåȥƥ㤫 V9 (LP64) ʤɤ 64 ӥåȥ
     ƥإɤܿˤ褯ȯ (ݥ󥿤ޤ) 
     ڤΤơĥӥåȥѥå󥰤ؤѹʤɤ꤬ٹ𤵤
     

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xport64 򻲾ȤƤ

     󥫡ˤäƥݡȤ롢ǡΥåɥʵΰ
     Ѥ¹Իǽθ:-xthreadvar (SPARC)

     åɥʵΰ赡ǽˤϥ󥫡ˤäƥݡȤ
     ޤκȤ˻ѤƤ

        * åɸͭΥǡƤ뤿 POSIX 󥿥եι
          ®Ѥ
        * ޥץץޥåɥץѴ
        * åɥʵΰѤƤ Windows ץꥱ
           Solaris ˰ܿ
        * OpenMP  threadprivate ѿι®Ѥ

     Υ꡼ΥѥǤϡåɥѿ̤ƥ
     åɥʵΰѤǤޤˤϡѿ
     __thread ɲäˤ̾ѿȡޥɹԥץ
     -xthreadvar ˤޤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xthreadvar 򻲾ȤƤҤξ
     ٤ϡC++ 桼ɡ٤ 4 ϡָĥפƤ
     

     ڡեȤ򸺤餹Ȥˤ¹Իǽθ: -xF

     οǽ -xF ϡ󥫡ˤѿȴؿ¤ؤŬˤ
     ˻ѤޤεǽѤȡ¹ԻΥѥեޥ󥹤˰
     ƶͿ뼡Τ褦褷䤹ʤޤ

        * ꡼ܤƤϢΤʤʣѿˤäƵ
          å嶥ȥڡ
        * ꡼ܤƤʤϢΤʤѿˤäƵɬ
          פ礭ʥå
        * ͭʥǡ̩٤򲼤夤ѿ̤ѥԡˤäƵ
          ɬפ礭ʥå

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xF 򻲾ȤƤ

     ץ饰ޤˤ¹Իǽθ

     C++ ѥϡɤκŬͭʥץ饰ޤ򿷤 4 ĥ
     Ȥ褦ˤʤޤΥץ饰ޤξܺ٤ϡC++ 桼
     ɡ٤򻲾ȤƤ

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

     ܺ٤ϡSun ONE Studio 8 Compiler CollectionC++ 桼
     ɡ٤Ͽ B֥ץ饰ޡפ򻲾ȤƤ

     Link-Time Optimizer ˤ¹Իǽθ: -xlinkopt (SPARC)

     -xlinkopt ޥɤꤹ뤳ȤǡC++ ѥϺֲǽʥ
     ֥ȥեФƥ󥯻κŬ»ܤǤ褦ˤʤ
     CC(1) 򻲾ȤƤ

     -xlinkopt ꤹȡ󥯻˥ѥϥ󥯤Ƥ .o
     եѹ뤳ȤʤղŪʺŬ»ܤޤ κŬ
     иΤϡ¹ԲǽץǤ-xlinkopt ץ
     ϡץΤ򥳥ѥ뤹ˡץեΥեɥХ
     ȤȤ˻ѤȤäȤŪǤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xlinkopt 򻲾ȤƤ

     -xpagesize=n ˤ¹Իǽθ (SPARC)

     -xpagesize=n ץϡåȥҡפΥڡꤹ
     ˻Ѥޤn ˤϡ8K64K512K4M32M256M2G16G
     ޤ default Ǥޤоݥץåȥե Solaris 
     ڥ졼ƥ󥰴Ķͭʥڡ (getpagesize(3C) ɽ
     륵) ꤷƤͭʥڡꤷʤ׵
     ϼ¹Ի̵뤵졢Τ餻åɽޤо
     ץåȥեΥڡϡpmap(1) ޤ meminfo(2) ǳǧ
     Ǥޤ

     Υץϡ-xpagesize_stack  -xpagesize_heap Υޥ
     

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -xpagesize-xpagesize_heap
     -xpagesize_stack 򻲾ȤƤ

     -erroff ˤٹåΥե륿

     Υ꡼Ǥϡ -erroff ץѤƷٹå
     ѥΥեȥɤ˸ʤ褦ˤ뤳ȤǤ褦
     ˤʤޤ顼åȥɥ饤ФΥå
     ŬѤޤ ηٹå -erroff ŬѤη
     å褦ˤ뤳Ȥ⡢뤤Ϥηٹ
     ȯԤ褦ˤ뤳ȤǽǤ

     ȤС-erroff=tag  tag ˻ꤵ줿ٹå
     -erroff=%all,no%tag ϡtag ꤵå
     ٤Ƥηٹåޤ ٹåΥϡ
     -errtags=yes ץѤɽǤޤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -erroff 򻲾ȤƤ

     -errtags  -errwarn ˤ륳ѥ

     Υ꡼Ǥϡѥ饪ץ -errtags  -errwarn 
     ѥ餬ηٹȯԤ˥ѥߤǤ
     ˤʤޤ ޤηٹΥ򸫤Ĥ뤿 -errtags=yes
     ꤷ³ -errwarn=tag ꤷޤ (tag å
     Ф -errtags ֤դμ̻)

     ޤ-errwarn=%all ѤɤηٹȯԤƤ⥳ѥ
     ߤ褦˻ꤹ뤳ȤǤޤCC(1)  -xwe ⻲ȤƤ
     

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -errtags  -errwarn 򻲾ȤƤ

     -filt=[no%]stdlib ˤɸ饤֥̾Υե륿󥰤θ

     ǥեȤǤϡ󥫡ȥѥΥ顼åɸ饤
     ֥̾ʰײ褦ˡ-filt=[no%]stdlib ץ
     ꤵƤޤ Τᡢ桼ɸ饤֥ؿ̾
     ñǧǤޤΥե륿󥰤̵ˤϡ
     -filt=no%stdlib ꤷƤ

     ܺ٤ϡCC(1) ޤ Sun ONE Studio 8 Compiler CollectionC++ 
     ɡ٤ -filt 򻲾ȤƤ



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

D. եȥν

ǤϡΥեȥνˤĤޤ

  1. ޤɽ : 󥹥ȥ饯ƤӽФޤϴؿؤΥݥ
  2. Solaris 8 update 2 ӥѥåˤ ctype ̤顼ν
  3. -instance=static  -instance=semiexplicit ȥƥץ졼Ū
     Υݡ
  4. ؿ˥ŪѿФ extern 饤ؿưΰ㤤
  5. ƥץ졼Ȥιʸ顼θ
  6. -staticlib ץ -G Ʊ꤬ǽ

  1. ޤɽ : 󥹥ȥ饯ƤӽФޤϴؿؤΥݥ

     C++ ǤϡȤȲᤵ줿ꡢޤȤϼȲᤵ
     ǽʸޤC++ Τޤӽ§ǤϡʸʸȤ
     ʤȤǤϡʸʸȤ뤳ȤˤʤäƤޤ

     ΥСΥѥǤϡΤ褦ʻäƲᤷƤޤ
     

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

     ΥץޤϤ餯ǸιԤ S ΰŪͤǽѿ
     v ĤǤΥСΥѥϡʸ򤽤
     褦˲ᤷƤޤ

     ƥΥ󥹥ȥ饯ȡ"S()" ϡ"S ᤹ͤ
     ᡼Τʤؿ" ̣ (̻ҤΤʤ) Ȥ
     ʤȤǤޤλǤϡؿݥ󥿡"S(*)()" ˼ưŪѴ
     ƤޤʸϤޤͤ T ǡѥ᡼ؿݥ󥿷
     δؿ v ȤƤͭǤ

     ߤǤϥѥ餬򤹤褦ˤʤäΤǡΥץޤ
     տޤ褦ˤʤʤǽޤ

     ޤˤʤʤ褦˥ɤˤϡ 2 ̤ˡ
     

         T v1( (S()) );  // v1 ϡ륪֥
         T v2( S(*)() ); // v2 ϡؿ

     1 ܤ 1 Ф;ʬʳ̤ϡv1 ιʸؿȤƤǤ
     ǡ"S ΰŪͤǽ T Υ֥" Ȥ̣ˤ
     Ǥޤ

     Ʊͤˡ󥹥ȥ饯ȡ"S(*)()" ͤȤϹͤʤΤǡؿΰ
     ̣ˤǤޤ

     ǽιԤϡΤ褦˽񤯤ȤǤޤ

         T v1 = S();

     ̣ϴΤˤʤޤνηǤϡ̾ϤǤ
     ȤϤŪͤȤ礭ͤ뤳Ȥޤ

     Τ褦˥ǥ󥰤ΤϤǤޤ󡣤ͳϡ̣
     Τǡѥ餬ۤʤȷ̤ۤʤǽ뤫Ǥ

         T v( S() ); // 侩ʤ

  2. Solaris 8 update 2 ӥѥåˤ __ctype ̤顼ν

     Solaris 8 ڥ졼ƥ󥰴Ķ꤬ꡢ<stdlib.h>  MB_CUR_MAX 
     Ѥȡ C++ ѥ餫__ctype ƤޤפȤ
     顼֤뤳Ȥޤ

     ΥХϡSolaris 8 update 2 ڥ졼ƥ󥰴Ķǽޤ
     ϡSolaris ѥå 109607-01 (SPARC)109608-01 (IA) Ǥ⽤Ƥ
     ޤ

     ΥåץǡǤޤϥѥå򥤥󥹥ȡ뤷Ƥʤ硢
     򤹤ˤϡإå <stdlib.h> 򥤥󥯥롼ɤɸإå
     <ctype.h> 򥤥󥯥롼ɤƤ

  3. -instance=static  -instance=semiexplicit ȥƥץ졼Ū
     Υݡ

     ΥС C++ ѥǤϡƥץ졼ŪѿФ
     Ū󥹥󥹥᥽åɤȾŪ󥹥󥹥᥽åɤݡȤ
     ޤǤС 5.25.35.4  5.5  C++ ѥ
     ϡ¤Ƥޤ

  4. ؿ˥ŪѿФ extern 饤ؿưΰ㤤

     ARM §Ǥϡextern 饤ؿδؿ˥Ūѿϥե
     ФŪǤISO ʤǤϡextern 饤ؿδؿ˥
     Ūѿϡѥ˥åȴ֤Ƕͭ륰ХѿǤ

     С 5.0  5.1  C++ ѥǤϡߴ (-compat) 
     ɸ (ǥեȤΥ⡼) ΤɤΥ⡼ɤǤ ARM ưƤ
     ޤФС 5.25.35.4  5.5  C++ ѥ
     Ǥϡߴ⡼ɤ ARM ưɸ⡼ɤ ISO ưƤ
     ޤʲˤ򼨤ޤ

     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(); }

     ߴ⡼ (-compat) ǥѥ뤷硢 2 Ĥѿϰۤʤꡢ
     main η̤ 0 ˤʤޤ

     ɸ⡼ (ǥեȥ⡼) ǥѥ뤷ϡ 2 Ĥѿ
     Ʊˤʤꡢmain η̤ 1 ˤʤޤ ɸ⡼ɤǸŤưˤ
     ϡ饤ؿ static ޤ

  5. ƥץ졼Ȥιʸ顼θ

     Υƥץ졼ȤιʸǤSun C++ 4  5.0 Ǥϡ顼
     ʤޤǤС 5.15.25.35.4  5.5  C++ 
     ѥǤϡʸ顼Ȥ𤵤ޤ (ǥեȤɸ⡼ɤǥ
     ѥ뤷)

       template<class T> class MyClass<T> { ... }; // 顼
       template<class T> class MyClass<T>;         // 顼

     ɤξ⡢MyClass<T>פΡ<T>פǡ˼褦˺
     ɬפޤ

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

  6. -staticlib ץ -G Ʊ꤬ǽ

     ϡ-staticlib ץˤϡͭ饤֥ۤˤ̵
     ǤߤͭǤ



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

E. Ȳ

ǤϡޤǤˤ狼äƤ륽եȥȤβˤĤ
ޤˤĤƤϡåץǡȾ
http://sun.co.jp/software/sundev/suncc/hotnews.html 򻲾ȤƤ

  1. ѥѤ .i ե뤬ѥ饨顼
  2. ֥󥯥顼
  3. 󥯻̾沽
  4. Solaris ڥ졼ƥ󥰴ĶС 7 ˤ make ɸ饤֥
     إåե
  5. ǥХåġ뤫顢Сؿ;ʬԥѥ᡼Ȥ
     å֤
  6. ŪǤϤʤ֤̾Υ֥Ȥƥץ졼Ȥ黲ȤǤʤ
  7. ̾ #pragma align 沽̾
  8. ؿ¿β
  9. إåɤѤޥåб C++ ץϡSolarais 8
     ڥ졼ƥ󥰴ĶǥǥХåȥϥ󥰥åפ

  1. ѥѤ .i ե뤬ѥ饨顼

     __global ϡ xldscope ѥ饪ץΰȤ C++ 5.5
     ɲä줿ɤǤѤߤ .i եŤѥ
     Ѥ³Ƥ .i եС 5.5 ǥѥ뤹
     硢.i եǥ __global ̻ҤȤƻѤƤ
     ȡ顼åɽ뤳Ȥޤ

     褹ˤϡ.i եƬ #pragma disable_ldscope 
     ɲäƤΥɤŤѥоݤȤƤϡ
     󥫡ԥ󥰥 (__global ʤ) ϻѤǤޤ
     ۤΥե˥󥯥롼ɤϡ.i եκǸ #pragma
     enable_ldscope ȤԤɲäǤޤ

  2. ֥󥯥顼

     -xlang=f77 ޥɤ¹Ԥȡѥץ˥󥫡顼
     ȯޤ顼򤹤ȤȤŬڤʼ¹Ի饤֥򥤥󥯥롼
     ɤˤϡ -xlang=f77,f90 ¹Ԥޤ

  3. 󥯻̾沽

     ξˡ󥯻꤬ȯ뤳Ȥޤ

        o const ѥ᡼դƤؿ̤ξ const ѥ
          ᡼ʤƤ롣

          :

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

          Ǥѥϰۤʤ沽̾դޤ
          򤹤ˤϡͤΥѥ᡼ const ȤʤǤ
          ȤСؿΤʤɤΤ void
          foo1(int);

        o ؿƱʣ緿Υѥ᡼ 2 ĤꡢΥѥ᡼
          typedef Ƥ롣

          :

            class T;
            typedef T x;
            // foo2 ʣ緿(ݥ󥿤ޤ)
            // ѥ᡼
            void foo2(T*, T*)
            void foo2(T*, x*);
            void foo2(x*, T*);
            void foo2(x*, x*);

          ٤Ƥ foo2 ǡƱ:w 沽ɬפ
          ޤѥϰ˰ۤʤä沽ԤʤäƤޤ
          򤹤ˤϡӤ typedef Ѥޤ

          typedef ӤƻѤǤʤϡȤơؿ
          ե weak ܥѤȤˤ
          򼨤ޤ

          #pragma weak "__1_undefined_name" = "__1_defined_name"

           -- 沽̾ϡåȥƥˤäưۤʤ
          ȤСsize_t  SPARC V9 ƥǤ unsigned long
          ǤʳΥƥǤ unsigned int Ǥϡ2
          ĤΰۤʤäС沽̾줾 1 ĤΥǥ¸ߤ
          ǤΤ褦ʾϡ2 ĤΥץ饰ޤѰդŬڤ #if
          椹ɬפޤ

     ܺ٤ϡC++ ܹԥɡ٤򻲾ȤƤΥޥ˥奢 HTML 
     ˥ˤϡ֥饦 file:/opt/SUNWspro/docs/ja/index.html 
     ޤ

  4. Solaris ڥ졼ƥ󥰴ĶС 7 ˤ make ɸ饤֥
     إåե

     ɸ饤֥ե̾ˤϡ.hդƤޤ󡣤
     ˡistreamfstream ʤɤ̾դƤޤޤƥץ졼Ȥ
     եˤ istream.ccfstream.cc ʤɤ̾դƤ
     

     Solaris 7 ڥ졼ƥ󥰴Ķ <istream> Τ褦ɸ饤֥إå
     ץ˥󥯥롼ɤ硢makefile  .KEEP_STATE 
     ȡ꤬ȯޤȤС <istream> 󥯥롼ɤȡmake
      istream ¹ԲǽȤߤʤǥեȤε§˴Ť istream.cc 
      istream ۤ褦Ȥޤη̡򾷤顼å
     ֤ޤistream  istream.cc ϤȤˡC++ 󥯥롼ɥե
     쥯ȥ˥󥹥ȡ뤵Ƥޤʲˡꤦ򼨤
     

        o -r ץѤơǥեȤ make §̵ˤ롣
          ˡѤȡۥץߤ뤳Ȥޤ
        o make ˡdmake 桼ƥƥ༡⡼ɤǻѤ롣dmake
          -m serial
        o .KEEP_STATE λѤ򤱤롣

  5. ǥХåġ뤫顢Сؿ;ʬԥѥ᡼Ȥ
     å֤

     ߴ⡼ (-compat=4) ǤϡC++ ѥϥСؿؤݥ
     Υ̾沽ޤ󡣤Υ顼Τᡢ沽ץप
     ӡdbx  c++filt ʤɤΥǥХåġ뤫顢Сؿ;ʬ
     ѥ᡼ (Сؿ°Ƥ륯饹פ򼨤) 
     ޤ褹ˤϡ-Qoption ccfe -abiopt=pmfun1 ե饰
     äޤ̤ˡΥե饰Ѥƥ򥳥ѥ뤹
     ȡΥե饰ʤǥѥ뤷Ȥδ֤ΥХʥ٥θߴ
     뤳Ȥޤɸ⡼ (ǥեȥ⡼) Ǥϡ̾
     沽˴ؤϤޤ

  6. ŪǤϤʤ֤̾Υ֥Ȥƥץ졼Ȥ黲ȤǤʤ

     ץǥƥץ졼ȤŪ֥ȤѤƤȡ̤
     ܥΥ󥯻顼ȯޤߥѥϡŪǤʤ̾
     ֥פΥ֥ȤФƥץ졼ȤλȤ򥵥ݡȤޤ
     󡣼ǹͤƤߤޤ

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

     Ǥϡƥץ졼ȥ饹ΥС֥̾ѿ򻲾Ȥ
     ޤ֥̾פϥե륹פޤळȤդƤ
     ѥϡ֥̾ѿ򻲾Ȥƥץ졼ȥ饹Υ
     򥵥ݡȤޤʣΥѥñ̤ƥץ졼Ȥ󥹥
     ȡƥ󥹥󥹤ϰۤʤ k 򻲾ȤޤĤޤꡢC++ ODR
     (One-Definition Rule) ȿȯɤƤʤư򵯤
     ޤ

     桼ϡk ɤΤ褦˻Ѥk ˤäƤɤΤ褦ʸ̤
     ˤȤŤ˼ˡ»ܤǤޤ饹СǤϤʤ
     ؿƥץ졼Ȥξ硢ǤΤϺǽΥץ 3 ܤΥץ
     Ǥ

       1. ѿ˳󥱡

          int k; // ŪǤϤʤ

          ٤ƤΥ󥹥󥹤ϡk ƱԡѤޤ
       2. ѿ򥯥饹ŪСˤ

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

          Ūʥ饹Сϳ󥱡ޤ C<T>::foo 
          󥹤ϡ̤ k ѤޤC<T>::k Υ󥹥󥹤ϡۤ
          δؿǶͭǤޤ̾ϤΥץ󤬻Ѥޤ
       3. ѿؿФƥˤ

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

           C<T>::foo 󥹥󥹤ϡؿγϸʤȼ k Υ
          ԡѤޤ

  7. ̾ #pragma align 沽̾

     ̾ #pragma align Ѥϡ沽̾Ѥɬפ
     ޤȤСΥɤǤϡ#pragma align ʸϲƯ⤷ޤ
     󡣤褹ˤϡ#pragma align ʸ ab c 򤽤
     沽֤̾ɬפޤ

       namespace foo {
         #pragma align 8 (a, b, c) // ͭǤʤ
         // 沽̾:
         #pragma aling 8 (__1cDfooBa_, __1cDfooBb_, __1cDfooBc_)
         static char a;
         static char b;
         static char c;
       }

  8. ؿ¿β

     C++ ѥΰΥ꡼ǤϡC++ ɸ׷˽äơؿ¿
     βԤޤǤΥ꡼Ǥϡ¿줿ؿ
     ƤӽФ褷ơ¿ΥХƤޤäˡѥϡ
     ӽФºݤˤޤʾϴؿԥå󥰤ꡢºݤˤϤǤ
     ˤ⡢ƤӽФޤǤɽꤹ礬ޤ

     ޤǤ뤳Ȥ򼨤å˴ؤˤϡפʤΤ⤢
     ޤ ˤ𤵤ʤäޤ˴ؤ뿷顼ȯ
     ޤ

     ޤʴؿƤӽФμʸ 1 ĤϡȤ߹߷Υ֥åȤˤ
     ¿ȯ뤳ȤǤ


     int f1(short);
     int f1(float);
     ...
     f1(1); // ޤ1"  int 
     f1(1.0); // ޤ1.0"  double 

     ˤϡf1 褷¿ʤ뤤ϳĥ
     ٤Ƥη (intunsigned intlongunsigned long double) 
     ¿Ԥޤ (long longunsigned long long long double
     ⤢ޤ)

     ⤦ 1 Ĥμʸϥ饹ˤ뷿Ѵؿǡä¿줿黻
     Ҥ¸ߤǤ

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

     α黻ϡΤ褦˲ǤΤǡޤǤ

     T(1) + t     // ¿줿黻
     1 + t.operator int()    // Ȥ߹ߤ int ɲ

     ¿줿黻ҤޤϷѴؿѤǤޤξѤȡ
     ޤȽǤޤ

     ºݡѴؿΤΤϡޤȽǤ줿ꡢտޤʤä
     Ѵȯꤹ뤳ȤӤӤޤѴͭˤɬפ
     ϡѴؿǤϤʤ̾դؿѤƤȤС
     operator int();

     ѹˤꡢ黻 1 + t ϤޤǤϤʤʤޤ T(1) + t Ȥ
     Ǥޤ󡣤ۤβ˾ϡ1 + t.to_int() ȵҤɬ
     ޤ

  9. إåɤѤޥåб C++ ץϡSolarais 8
     ڥ졼ƥ󥰴ĶǥǥХåȥϥ󥰥åפ

     إåɤѤƹۤޥåб C++ ץϡ
     Solari 8 ڥ졼ƥ󥰴ĶǥǥХå褦Ȥȡϥ󥰥åפ
     -R /usr/lib/lwp ѥ饪ץǹۤ 32 ӥåȥޥ
     åб C++ ץϡdbx Ǽ¹Ԥȥϥ󥰥åפޤ-R
     /usr/lib/lwp/sparcv9 ѥ饪ץǹۤ 64 ӥåȥޥ
     åб C++ ץϡ¹ԻԤʤäƤˤäˡϥ
     åפǽޤ

     θݤϡC++ ɤɸ (ǥե) ⡼ɤ (-compat=5 ѥ
     饪ץѤ) ѥ뤷˵ޤߴ⡼ɤ (
     -compat ѥ饪ץѤ) ѥ뤷ˤϵ
     

     ѥեޥĴȤإåɤλѤͤƤ硢ǥե
     Υåɥ饤֥ѤơޥåбΥץǽ
     ǥХå뤳Ȥ򶯤ᤷޤإåɤϡθǻѤƤ
     



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

F. »ȸߴ

Ǥϡ»पӥƥޤϤ¾ΥեȥȤθߴ
Ĥޤ

  1. ˡC++ ѥ 5.5 ꡼餫ˤʤäƤ OpenMP »
     򼨤ޤ

        o ΰŪʥ饹֥

          ǤϡOpenMP ΰˤŪʥ饹֥Ȥ
          Sun ϥݡȤƤޤ󡣤Τ褦Ĥȡ顼
          ޤΥ顼륳ɤ򼨤ޤ

          #pragma omp parallel
          {
            static A a;           // A ϥ饹η
            :
          }
          Error: Static non-POD decl not allowed in parallel region.

          Τ褦˥ɤѹȡ˾ޤưޤ

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

        o ɸΥƥץ졼ȥ饤֥

          OpenMP ΰ std::string Ѥȡѥ륨顼ޤ
          ϼ¹Ի顼ȯǽޤstlport4 饤֥
          Ѥ뤳ȤǤ꤬Ǥ⤢ޤ

        o OpenMP ǡǻѤ륯饹Сѿ

          Sun ϡOpenMP ǡФ륯饹СѿεҤϥݡ
          Ƥޤ󡣼ˡƱư¸뤿ν򼨤ޤ

             + shared

               shared (ǥե)  OpenMP ΰǥС
               Ѥޤ

             + private

               ΰŬڤʷοѿѤ褦ޤ

             + firstprivate

               ΰŬڤʷοѿ(shared) С
               ͤǤѿޤ

             + lastprivate

               ΰγŬڤʷοѿ
               lastprivate ֤exit ΤȤǤͤСѿ
               ޤ

        o catch ֥åΰ

          catch ֥å OpenMP ΰ褬иȡѥ饨顼
          ޤ


          try() {
              :
          }

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

            }
          }

        o OpenMP ˤĤƤϥޥɹڤؤ -xF=%all ϥݡȤʤ

          ڤؤѤȡ¹Ի㳰ǽ
          ޤ

        o ΰǤ firstprivate  omp for ˤ³λ

          饹֥ȤưŪ꡼Ƥ륳ԡ󥹥ȥ饯
          Υ֥Ȥΰ firstprivate ȤϤ졢
           omp for ΰǻѤ줿ϡʷ̤줿ꡢ
          㳰ȯꤷޤˡ꤬ȯǽ륳
          ɤ򼨤ޤ

          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();
              }
          }

          嵭Ǥϡa.i[j] ΥƥĤ»뤫㳰ȯ
          ޤˡ褹륳򼨤ޤ

          #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 ˤŬǥ󥫡פǽʤ

     Х 4829700 Ƥ褦ˡx86  -xldscope=hidden ޤ
     -xldscope=symbolic ꤹȡŬ -O ޤ -xO[1|2|3|4|5] 
     -xldscope ץ ǽޤ

  3. -xia  -library=stlport4 θߴ

     C++ ζֱ黻 STLport C++ 饤֥ȤȤ˻Ѥ뤳ȤϤǤޤ
     -xia ץѤץϡC++ Interval Arithmetic
     Programming Reference٤ɤ˥ѥ뤪ӥ󥯤뤳Ȥ
     Ǥޤ

  4. C++ ͭ饤֥Υѥå

     бץåȥեˤĤơΥ꡼ Sun ONE Studio 8 ǥ
     ݡȤ Solaris ڥ졼ƥ󥰴ĶΥС󤴤Ȥ SUNWlibC ѥ
     ѰդƤޤΥѥåϡѥ˻Ѥ륷ƥ
     ʤ줿ץư뤹٤ƤΥƥ˥󥹥ȡ뤹
     ɬפޤΥѥå򥤥󥹥ȡ뤷ʤȡΥץ
     ब󥯤ʤäꡢ¹Ի顼ǰ۾ｪλꤹ뤳Ȥ
     ȤС󥫡鼡Τ褦ʥå𤵤뤳Ȥ
     

                                                                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

     Τ褦ʥ顼å֤뤳Ȥ⤢ޤ


        [ҥ: 饹Ρ饤󲽤Ƥ餺Ǥʤ 1 ܤ
         ۴ؿƤ뤫ǧƤ]


     ꡼줿 Sun ONE Studio 8 ɬܥѥåȥץѥåˤ
     ƤϡSun ONE Studio 8 ꡼Ρȡ٤򻲾ȤƤ ꡼
     ΡȤϡSun ONE Studio 8 CD 
     /cdrom/ml_devpro_v10n1_sparc/docs/ja/release_notes_ja.html  HTML
     ǴޤޤƤޤ ꡼ΡȤϡSun ONE Studio 8 Web 
     Υޥ˥奢ڡ
     http://sun.co.jp/software/sundev/suncc/documentation Ǥޤ

  5. ѥΥС֤θߴ

     ǤϡC++ ѥС 4.04.14.2 ȼ˼С
     θߴˤĤޤ

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

       a. åСΰ㤤ˤ륳ѥ륨顼
       b. C++ 󥿥եθߴ
       c. Tools.h++ λ
       d. ʣΥƥץ졼ȥݥȥλ -ptr ץ̵뤵
       e. const СؿΥݥ󥿤ޤ 4.0.1 饤֥ȤΥ
       f. Υѥǥѥ뤷饤֥ȤΥ
       g. ۤʤС줿֥ȥɤκ


       a. åСΰ㤤ˤ륳ѥ륨顼

          ѥѹȤϡɬ SunWS_cache ֥ǥ쥯ȥ
          ह٤ƤΥǥ쥯ȥФ CCadmin -clean ¹ԤƤ (
          rm -rf SunWS_cache Ǥ)ԤʤȡΤ褦ʥ
          륨顼ȯ뤳Ȥޤ

             + 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++ 󥿥եθߴ

          С 5.05.15.25.35.4 5.5  C++ ѥ
          С 4.04.1 4.2  C++ ѥȤδ֤˥Хʥ
          ٥θߴϤޤ (5.05.15.25.35.45.5 Υ
          ˤ륳ѥ -compat ץѤ)
          ϡANSI/ISO C++ ʤƤͤ˹碌ơ饹
          ֤ƤӽФν̾沽ˡѹ줿ȤǤ

          С 5.05.15.25.35.4  5.5  C++ ѥ
          ٥θߴޤ

          ܺ٤ϡC++ ܹԥɡ٤򻲾ȤƤΥޥ˥奢
          HTML Ǥ˥ˤϡ֥饦
          file:/opt/SUNWspro/docs/ja/index.html 򳫤ޤ

       c. Tools.h++ λ

          C++ ѥϡǥեȤɸ iostream Ѥޤ
          Tools.h++ ɸ⡼ɤǻѤϡ-library=rwtools7_std 
          Ѥ뤫ޤϼ˼褦ˡѥ饪ץ
          libiostream ꤹɬפޤ

          example% CC -library=rwtools7_std foo.cc -> ɸ iostreams 
          example% CC -library=rwtools7,iostream foo.cc ->  iostreams 
          

          (-compat ѥ饪ץѤ) ߴ⡼ɤǤϡ
          ɸ饤֥꤬ѤǤʤᡢ-library=rwtools7_std ꤹ
          ȤϤǤޤ

          example% CC -compat foo.cc -> ߴ⡼ɤǤɸ饤֥
          Ǥʤ

          -library=rwtools7-library=rwtools7_dbg-library=rwtools7_std
          ޤ-library=rwtools7_std_dbg  -library=stlport4 ȤȤ˻Ѥ
          ʤǤTools.h++  STLport ǤϥݡȤƤޤ

          -library=rwtools7_std ץ -library=rwtools7,iostream 
          줿Хʥ֤˸ߴϤޤ󡣤Υץ
          Τɤ餫Ѥϡե⤹٤Ʊץ
          ǥѥ뤹ɬפޤ

          ޤC++ ܹԥɡ٤⻲ȤƤΥޥ˥奢 HTML
          Ǥ˥ˤϡ֥饦
          file:/opt/SUNWspro/docs/ja/index.html 򳫤ޤ

       d. ʣΥƥץ졼ȥݥȥλ -ptr ץ̵뤵

          5.0  C++ ѥǤϡ-ptr ץѤơƥ
          졼ȤΥ󥹥󥹲˻ѤݥȥꤷƤޤ
           5.05.15.25.35.4 5.5  C++ ѥ
          ϡ-ptr ץפǤϡѥ륷ƥबɤ
          륪֥ȥեбƥץ졼ȥݥȥ˴ޤޤ
          ƥץ졼ȥ󥹥󥹤CC ޥɤǻꤵ줿ǥ
          쥯ȥΥݥȥ˽񤭹िǤ

          Υ꡼ǡ-ptr ץѻߤƤꡢѥϤ
          Υץ̵뤷ޤץ̵뤵ȤƤ⡢٤Ƥ
          ѥ륳ޥɤ -ptr ϺƤƤͳϡ
          Υ꡼ǡ̤ưԤ -ptr Ƽǽ뤿
          Ǥ

           -- ʣΥץꥱ饤֥δ֤ 1 ĤΥƥץ졼
          ݥȥͭ뤳ȤϡǤޤ󡣶ͭ褦Ȥ
          ȡѥ뤬ԤʤȤꡢξϡƥץ졼
          Ȥơ¹Իͽ¬Ǥʤ̤ޤܺ٤ϡ
          C++ 桼ɡ٤򻲾ȤƤ

       e. const СؿΥݥ󥿤ޤ 4.0.1 饤֥ȤΥ

          C++ 4.0.1 ѥ餬 const СؿΥݥ󥿤Ф
          沽̾ϡС 4.14.25.05.15.25.35.4
          5.5 Υѥ餬ƤȤϰۤʤޤC++ ѥ
          Ƥơ4.0.1 ǹۤ줿沽̾ޤ饤֥ȥ󥯤Ǥ
          ʤϡΥ饤֥ƥѥ뤹뤫-compat -Qoption
          ccfe -abirel=4.0.1 ե饰ꤷơץλĤʬ򥳥
          뤹ɬפޤ

           -- Υ꡼Ǥ -abirel=4.0.1 ե饰ΥݡȤѻߤ
          ǽޤ

       f. Υѥǥѥ뤷饤֥ȤΥ

          C++ 4.0.1  C++ 4.1 ѥǤϡextern C״ؿǥ
          󥹲줿ƥץ졼ȤФơԲǽ沽̾
          ƤޤäơǥХåġ뤬ưޤǤ
          ϲ褵ޤ桼顢С 5.0
          5.15.25.35.4 5.5  C++ ѥǥѥ뤷
          ֥ȤСΥѥǥѥ뤷饤֥ȥ
          󥯤ǤʤȤ𤬤ޤ Ϥޤˤȯޤ
          ȯϡΤɤ餫ԤʤäƤ

             + Sun ONE Studio C++ (5.5) ѥѤƥ饤֥ƥ
               ѥ뤹뤫뤤
             + -compat  -Qoption ccfe -abirel=4.1 ե饰Ѥơ
               Sun ONE Studio 8 C++ (5.5) ѥǿ֥Ȥ
               ѥ뤹롣

           -- Υ꡼Ǥ -abirel=4.1 ե饰ΥݡȤѻߤ
          ǽޤ

       g. ۤʤС줿֥ȥɤκ

          ߴ⡼ɤɸ⡼ɤΥɤ򺮺ߤƤʤ¤ꡢۤʤС
           C++ ѥ֥ȥɤƱץ
          ˺ߤ뤳ȤǤޤǽץΥ󥯤ˤϡ
          ѤƤ륳ѥǺǿΥСѤɬפ
          

           -- С 4.2 ɤɸ⡼ɤ C++ ɤ
          󥯤뤳ȤϤǤޤ



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

G. Ҥθ

C++ ѥޥ˥奢εǤˤϡʲεҸ꤬ޤ

   * ǤΡC++ 桼ɡ٤ 7 ϡ֥ƥץ졼ȤΥѥס
     7.8 ǡCC_tmpl_opt Ȥƥץ졼ȥץե뤬ä
     쥯ȥ SUNWS_CONFIG_NAME ĶѿѤѹǤפȵҤ
     ƤޤϸǤΥǥ쥯ȥ̾ SUNWS_CONFIG_NAME
     ѿꤷѹ뤳ȤϤǤޤ

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

H. 饤֥κۤˤĤ

   * ¹Բǽե뤬Υե˼줿ưŪ饤֥ɬפ
      ϡ饤󥹤˴ŤơΥ饤֥ۤǤޤ

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

      - Sun ONE Studio 8 եȥ /opt ʳΥǥ쥯ȥ˥󥹥
     뤵ƤϡƥԤ˼ºݤΥѥ򤪿Ҥͤ

     ɤΤ褦ʷ֤Ǥ⡢إåե롢ɡ֥ȥ⥸
     롢 ȥ⥸塼Ū饤֥軰Ԥա뤳
     ȤϤǤޤ

     ѥ饤󥹤ϡCD-ROM Υ΢̤ˤ륨ɥ桼֥
     ɥ饤󥹤˵ܤƤޤ

   * libCstd  (ޤ) libiostream ζͭ饤֥СѤ
     ϡ 2 ĤΥץ󤬤ޤ
       1. ʤȤä SUNWlibC ѥåۤޤޤ
       2. ޤ http://www.sunsolve.sun.com Τ褦ʥ Web Ȥ
          ǿ SUNWlibC ѥåɤɬפޤΥѥ
          ̵ǡ٤Ǥ۲ǽǤ

     ɤꡢ饤֥Ū˥󥯤ϡʳΥ
     ⥢ɬפޤ



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

I. ̤бθ

   * C++ ѥ (CC) ϡC++ISO IS 14882:1998ץߥ󥰸 C++
      ISO ʤбƤޤΥ꡼ǤϥݡȤƤʤ ISO 
     ʤ׷򼡤ΥꥹȤޤ

        o Τ褦ʡؿƥץ졼Ȥδؿѥ᡼ꥹΥƥץ졼
          η̾Ǥʤѥ᡼ޤ༰

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

        o ƥץ졼ȥѥ᡼ƥץ졼 (ƥץ졼ȥѥ᡼ȤƤ
          ƥץ졼)

        o ʸ̾

        o ƥץ졼ȥѥΥݡȥǥϡݡȤƤޤ
          

   * 1990 C ʤ 1994 Addendum ˽и1998 C++ ʤΥե󥹤˴ޤ
     줿δؿϡSolaris ڥ졼ƥ󥰴ĶΥС 7  8
     󶡤ƤޤС 2.6 Ǥ󶡤ƤޤSolaris ڥ
     ƥ󥰴ĶΥС 2.6 ǤϡΥإåˤɽϤ
     Solaris ¹Ի饤֥ǤδؿѤ뤳ȤϤǤޤ

       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 Ĥΰۤʤ륳ѥ˥åƱ饤Υɥ쥹Ӥ
     ȡƱ̤ˤʤϤǤC++ ѥΤΥ꡼Ǥϡ
     Ʊ̤ˤʤޤ ̤ʤȤȤϡݥ󥿤Ӥ
     ˤΤߤ狼ޤ

   * C++ ѥθԥ꡼ȵ꡼ΥХʥߴݻ뤿
     ᡢ libCstd ǽƤޤ ܺ٤ˤĤƤϡ
     file:/opt/SUNWspro/docs/ja/index.html  C++ FAQ ˴ؤ󥯤Ĵ٤
     



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

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