[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[b-free: 1293] Îã³°½èÍý¤È RTTI ¤Î OS ¤Ç¤Î¥µ¥Ý¡¼¥È (Re: ¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤ÎOS¤Ø¤ÎŬÍÑ)





δ°ì¤Ç¤¹¡£


·ë¶É¤ÏÊØÍø¤µ¤È°ìÈÌÀ­¤Î¥È¥ì¡¼¥É¥ª¥Õ¤À¤È»×¤¦¤ó¤Ç¤¹¤¬¡£¡£¡£
ÆÃÄê¤Î¸À¸ì¤Ë¤·¤«¤Ê¤¤µ¡Ç½¤ò OS ¤¬¥µ¥Ý¡¼¥È¤¹¤ë¤Î¤â
̵Â̤ǤϤʤ¤¤Ç¤·¤ç¤¦¤«¡©


From: Hideaki Suzuki <h1suzuki@bridgew.edu>
Subject: [b-free: 1272] Re: ¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤ÎOS¤Ø¤ÎŬÍÑ(Re:         ¥¹¥±¥¸¥å¡¼¥ë¤Ë¤Ä¤¤¤Æ)
Date: Mon, 06 Apr 1998 07:42:26 -0400


...[snip]...

> > ¤É¤Á¤é¤Ë¤·¤Æ¤â¡¢¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤ÈÎã³°½èÍý¤È¤Ï´Ø·¸¤Ê¤¤µ¡Ç½¤Ç¤¹¤Í¡£
> > ÏÃ¤Î¶ÚÆ»¤¬¤º¤ì¤Æ¤¤¤Þ¤»¤ó¤«¡©
> 
> ¤¿¤·¤«¡¢Îã³°½èÍý¤Î£Ï£Ï¤ËÂФ¹¤ë¹×¸¥¤Î°ì¤Ä¤Ï¡¢À¸À®»Ò¤ÎÃæ¤Ç¤Î error trap ¤À
> ¤Ã¤¿¤È»×¤¤¤Þ¤¹¡£
> À¸À®»Ò¤Ï³°Éô¡Ö¤Ø¡×¤ÎÏ¢ÍíÊýË¡¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢Îã³°½èÍý¤¬»È¤¨¤Ê¤¤¤ÈÈó¾ï
> ¤Ëº¤¤Ã¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
> Î㤨¤Ð¡¢object ¤òÀ¸À®¤·¤¿¤³¤È¤Ï¤·¤¿¤±¤É¡¢¼ÂºÝ¤Ï¡¢É¬Í×¤Ê memory ¤¬³ÎÊݤÇ
> ¤­¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤È¤«¡£


¤¨¡¼¤È¡¢¤À¤«¤é£Ï£Ï¤È¤¤¤¦°ìÈÌŪ¤Ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤òɽ¤¹¤è¤¦¤Ê¸ÀÍÕ¤ÈÎã³°
½èÍý¤È¤Ï·ë¤Ó¤Ä¤«¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£

Îã³°½èÍý¤È·ë¤Ó¤Ä¤±¤ë¤Ê¤é¤Ð¡¢C++ ¤È¤Ç¤·¤ç¤¦¡£ÎëÌÚ¤µ¤ó¤Î£Ï£Ï¤Ë¤Ä¤¤¤Æ¤ÎµÄ
ÏÀ¤Ï¡¢¤Á¤ç¤Ã¤È C++ ¤È¤¤¤¦ÆÃÄê¤Î¸À¸ì¤ËÊФꤹ¤®¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤·¤Þ¤¹
(RTTI ¤Ë¤Ä¤¤¤Æ¤âƱÍÍ)¡£

# Java ¤â C++ ¤ÈƱ¤¸¤è¤¦¤ËÎã³°½èÍý¤Ï¤¢¤ë¤±¤É¡¢setjmp/longjmp ¤Ï¤Ê¤¤¤È
# »×¤¦¡£¡£¡£


> ¤Þ¤¢¡¢°ìÈÌŪ¤Ë¤Ï error propagation ¤Îɸ½àŪ¤ÊÊýË¡¤¬³ÎΩ¤µ¤ì¤¿¤È¤¤¤¦Êý¤¬
> Â礭¤¤¤«¤Ê¡£
> Ëͤϡ¢Ì¤¤À¤Ë¡¢long/setjmp ¤ÎÊý¤¬¹¥¤­¤À¤±¤É¡£

C++ ¤Î¾ì¹ç¤À¤È¡¢longjmp ¤ÇÂç°èæ½Ð¤ò¹Ô¤Ã¤Æ¤·¤Þ¤¦¤È¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Î
destructor ¤¬¼Â¹Ô¤Ç¤­¤Ê¤¤¤¿¤á¤Ç¤Ï¡©  longjmp ¤Ï¥×¥í¥°¥é¥Þ¤Î»×¤¦¤Þ¤Þ¡¢
¤¤¤Ä¤Ç¤â¤É¤³¤Ç¤â¹¥¤­¤Ê¤È¤³¤í¤ËÈô¤Ö¤³¤È¤¬¤Ç¤­¡¢¥³¥ó¥Ñ¥¤¥é¤ÇÀ©¸æ¤Ç¤­¤Þ¤»
¤ó¡£

C++ ¤Ï¡¢¥×¥í¥°¥é¥à¤Î΢¦¤Ç¥³¥ó¥Ñ¥¤¥é¤¬¤´¤½¤´¤½¤ä¤Ã¤Æ¤¤¤ëÉôʬ¤¬¤¢¤ê¤Þ
¤¹¤«¤é(constructor/destructor ¤¬°ÅÌۤǸƤФ줿¤ê¤¹¤ë)¡¢setjmp/longjmp
¤Î½èÍý¤È¹ç¤ï¤Ê¤¤Éôʬ¤¬¤¢¤ë¤È¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦¡£



> > > £Ï£Ó¤¬ RTTI ¤ò»Ù±ç¤·¤¿¤È¤·¤Þ¤·¤ç¤¦¡£¤½¤¦¤¹¤ë¤È¡¢compiler ¤Î dynamic_cast ¤Ë´Ø¤¹¤ë½èÍý¤¬¤À¤¤
> > > ¤Ö¤ó³Ú¤Ë¤Ê¤ê¤Þ¤¹¡£
> > 
> > ¤¨¡¼¤È¡¢RTTI ¤È¤Ï²¿¤Ç¤·¤ç¤¦¤«¡©
> > ¥³¥ó¥Ñ¥¤¥é¤Î·¿ÊÑ´¹¤Ë´Ø·¸¤Î¤¢¤ëµ¡Ç½¡©
> > ¥³¥ó¥Ñ¥¤¥é¤ò°ì¤«¤éºî¤ë¤Î¤Ç¤Ê¤¤¾ì¹ç¡¢¥³¥ó¥Ñ¥¤¥é¤Î½èÍý¤¬·Ú¸º¤µ¤ì¤Æ¤â¤¢¤Þ
> > ¤êÆÀ¤¬¤Ê¤¤¤è¤¦¤Êµ¤¤¬¤·¤Þ¤¹¡£
> > ¥³¥ó¥Ñ¥¤¥é¤ò½ñ¤­ÊѤ¨¤ë¤È¤¤¤¦ÏäÀ¤È¡¢Ê̤ÊÏ«ÎϤ¬É¬ÍפǤϡ©
> 
> GNU C++ ¤Ï¡¢dynamic_cast ¤È¤«»È¤¨¤Ê¤«¤Ã¤¿¤ó¤Ç¤·¤¿¤Ã¤±¡©
> ¤Þ¤¢¤¤¤¤¤ä¡£¡ã¤³¤é¤³¤é¡£^^;
> 
> RTTI:- "Run-Time Type Identification" | ¼Â¹Ô»þ·¿¼±ÊÌ
> 
> ¤³¤ì¤Î¤ª¤«¤²¤Ç¡¢cross-casting ¤È¤«¤¬°ÂÁ´¤Ë¹Ô¤¨¤ë¤é¤·¤¤¡£
> ¡ô¡¡¤¢¤ó¤Þ¤ê»È¤Ã¤¿¤³¤È̵¤¤¡£(^^;;;;
> 

¤¢¤¦¡¢The C++ Programming Language 3rd Edtion ¤Ë¤ÆÄɲ䵤줿µ¡Ç½¤Ç¤¹¤Í¡£
(Â裲ÈǤǤâ¼Â¹Ô»þ·¿¾ðÊó¤È¤¤¤¦¾Ï¤¬¤¢¤ê¤Þ¤¹¤¬¡¢C++ ¤Îµ¡Ç½¤È¤·¤Æ¼Â¹Ô»þ¤Î
·¿¾È²ñ¤ò¹Ô¤¦É¸½àŪ¤Ê¤ä¤êÊý¤ÏÄ󶡤·¤Æ¤¤¤Ê¤¤¤È½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹)

¤Á¤Ê¤ß¤Ë¡¢3rd edition ¤ÎÊý¤Ç¤Ï¡¢RTTI ¤Î¤³¤È¤ò "Run-Time Type
Information" ¤Îά¤È½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¤±¤É(P.408)¡£¡£¡£

¤·¤«¤·¡¢RTTI ¤Îµ¡Ç½¤Ë¤·¤Æ¤âÎã³°½èÍý¤ÈƱ¤¸¤¯¡¢C++ ¤ÎÆÃÍ­¤Îµ¡Ç½¤Ç¤¢¤Ã¤Æ¡¢
°ìÈÌŪ¤Ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤Îµ¡Ç½¤È¤Ï¸À¤¨¤Ê¤¤¤Ç¤·¤ç¤¦(¤½¤ì°ÊÁ°¤Ë¡¢OS ¤Ë´Ê
ñ¤ËÁȤ߹þ¤á¤ëÊýË¡¤¬¤¢¤ë¤ó¤À¤í¤¦¤«¡©)


p----------------------------------------------------------------------q
| FROM R.Night                                                         |
| E-mail:                                                              |
|         rnaitoh@st.rim.or.jp                                         |
| Key fingerprint = 89 EB 77 95 40 C0 3C CC  37 A1 A7 FA 1C 66 FF D0   |
b----------------------------------------------------------------------d