ãã®èšäºã§ã¯ãçæ³çãªæ±çšããã°ã©ãã³ã°èšèªã«é¢ããç§ã®èããå ±æããããšæããŸãã ãŸã第äžã«ãC ++ã眮ãæããããšãã§ããèšèªã«ã€ããŠã
ããã°ã©ãã³ã°èšèªãç§ã®è¶£å³ã§ãããITã«å¯Ÿããäž»ãªé¢å¿äºã§ããããšãããŸããŸèµ·ãããŸããã ãããããã©ã®ããã°ã©ããŒããèªåèªèº«ã®çæ³çãªããã°ã©ãã³ã°èšèªãäœæããããšæãããšããããŸãã ç§ã«ãšã£ãŠãããã¯åãªã倢ã§ã¯ãããŸãããå®éãç§ã¯é·ãéãããŸããŸãªèšèªã§ãã¹ãŠã®æ å ±ãåéããèªåã®èšèªãèšèšããŠããŸããã
ããŸããŸãªãªãœãŒã¹ã§ããã®ããŒãã®åé¡ã«ã€ããŠå®æçã«çºèšããŠããŸãã ãã®èšäºã§ã¯ãäž»ãªèãããŸãšããããšããŸããã C ++ã®äž»ãªæ¬ ç¹ãC ++ãšäœããã®æ¹æ³ã§æ¯èŒã§ããä»ã®èšèªã®æ©èœãããã³æãèå³æ·±ã-èšèªã©ã€ãã©ãªãŒã®ããã°ã©ããŒã®ããŒãºããBoostã©ã€ãã©ãªãäŸãšããŠäœ¿çšããŠæ€èšããŸãã
ãã®èšäºã¯ãæè¡çãªæçšæ§ã䞻匵ãããã®ã§ã¯ãããŸããïŒèª°ãã«ãšã£ãŠæçšã§ããã°ãããã¯çŽ æŽãããããšã§ãïŒã ãã®èšäºã¯ããã£ã¹ã«ãã·ã§ã³ãžã®æåŸ ã§ãã
C ++ã¯çæ³ããããé¢ããŠããŸãã C ++ããã°ã©ããªã誰ã§ãåæããã§ãããã
C ++ã®æ¬ ç¹ã¯ãäœããããŸããCã®éãéºç£ã§ãïŒå å«ã®ã²ã©ãã·ã¹ãã ãšã¢ãžã¥ãŒã«æ§ã®å®å šãªæ¬ åŠã§ãã ããããŒãã¡ã€ã«ãå«ãããšãåºæ¬çã«ããã¡ã€ã«ã®å å®¹å šäœãã³ã³ãã€ã«åäœã«å«ãŸããŸãã ããããŒãã¡ã€ã«ã«ã¯ãäºããå«ãŸããŠãããææ°ã®ã©ã€ãã©ãªã«ã¯äœäžãã®ããããŒãã¡ã€ã«ãå«ãŸããŠããå¯èœæ§ããããã...ãã¡ãããããã¯ã³ã³ãã€ã«æéã«åœ±é¿ããŸãã ãããªã³ã³ãã€ã«æžã¿ããããŒãïŒpchïŒãªã©ã®ããŸããŸãªãããã³ã°ãœãªã¥ãŒã·ã§ã³ã圹ç«ã€å ŽåããããŸãããå®è·µã瀺ãããã«ããããã®ãœãªã¥ãŒã·ã§ã³ã¯çæ³ããã¯ã»ã©é ããã®ã§ãã ããšãã°ãVisual C ++ã§ã¯ã1ã€ã®ãœãªã¥ãŒã·ã§ã³ã®è€æ°ã®ãããžã§ã¯ãã«å ±éã®pchãäœæã§ããŸããïŒéåžžãããªã³ã³ãã€ã«æžã¿ããããŒã«ã¯ãstlãboostãªã©ã®æ¬åœã«äžè¬çã§äžå€ã®ããããŒãå«ãŸããŠããŸãïŒã
ãããŠãã¡ãããããã°ã©ããŒã®ç¹åŸŽã§ããå éšå®å šäž»çŸ©ã¯ããã®ãããªå®è£ ã«åŒ·ãæè°ããŸããåºæ¬çã«ã¯æŸèæã§ãããæåã¯æ£ãããªãã¢ãŒããã¯ãã£ãæ¯æããŸãã
#define true false
ãã¡ããããã¬ãã·ã«ã«ãããªããã»ããµãCã®å¥ã®ããã«ã¡ã¯ã倧ãããŠãã£ãããšæé·ããUnixã®ã¬ã¬ã·ãŒïŒã¯ããå®éã«ã¯å¥ã®ããã°ã©ã ã§ãããã¯ããããšãã°m4ãªã©ã®ä»£æ¿ããªããã»ããµããããŸãããä»ã§ã¯ããªããã»ããµã¯æããã«äžéšãšããŠèªèãããŠããŸãèšèªïŒã ããããããªããã»ããµã¿ã¹ã¯ïŒããæ£ç¢ºã«ã¯ãæ§æãã¯ãã®ã·ã¹ãã ïŒã解決ããç¹å®ã®æ©èœã»ãããèšèªã«å¿ èŠã§ããããšã¯æããã§ãããããã¯èšèªãšã¯é¢ä¿ã®ãªãéæšæºã®ãµãŒãããŒãã£ããã°ã©ã ã§ãã£ãŠã¯ãªããŸããã
ãããŠãæ¯èŒçæ°ãã-ãã³ãã¬ãŒãã®å®å šãªãã¥ãŒãªã³ã°ã¯ããããã®åããã³ãã¬ãŒãã§å°çã®ãããªã¡ã¿ããã°ã©ãã³ã°æ§é ãçã¿åºããŸããã æåã¯ããã¡ããããã³ãã¬ãŒãé¢æ°ãšã¯ã©ã¹ã¯ãåŠç/ä¿åãããããŒã¿ã®ã¿ã€ãã«äŸåããªãæ®éçãªã¢ã«ãŽãªãºã ãšããŒã¿æ§é ãèšè¿°ããããã ãã«äœ¿çšããããšæ³å®ãããŠããŸããã çŽ æŽããã䜿çšïŒ ãããã
çµã¿èŸŒã¿ã®æ§æãã¯ãã®æ¬ åŠãšæ©èœã«å¯Ÿããæ°žé ã®æžæã«ãããããã°ã©ããŒã¯ãã³ã³ãã€ã«æã«ã³ã³ãã€ã©ãŒã«ãã£ãŠå®è¡ãããã¡ã¿ã¿ã€ããã¡ã¿ã¢ã«ãŽãªãºã ãããã³èšç®ã䜿çšããŠããã³ãã¬ãŒãã«å®å šãªã¡ã¿èšèªãäœæããããšãäœåãªããããŸãã... æ¬è³ªçã«æŸèæã§ããããšä»¥å€ã¯äœããããŸããã
ããããããšãã°ãããŒã¯ãŒãïŒæ§é äœïŒãæå³ãããç®çã«äœ¿çšãããŠããªãå Žåã¯äžå¿«ã§ãã ãããŠãã¡ããã誀ã£ãã¿ã€ããã¹ã®ããã«ãã°ãã°çºçãããšã©ãŒããšã«æ°åè¡ïŒæ°çŸè¡ã§ã¯ãªãã«ããŠãïŒãèŠããäžé©åãªãšã©ãŒã¡ãã»ãŒãž...ããã¯æ¬åœã«ã²ã©ãã§ãã
ãã¡ãããC ++ã«ã¯ä»ã«ãååãªæ¬ ç¹ããããŸã-äºçŽ°ãªããšã§ãã ãããã«ããããããã®å€ãã¯æ¬¡äžä»£ã®ã¢ããªã±ãŒã·ã§ã³ããã°ã©ãã³ã°èšèªã§ããJavaãšCïŒã§èæ ®ãããŸãã ãšããã§ãç§ã®å¥œã¿ã§ã¯ãCïŒã¯ä»ã®å€ãã®èšèªã®æ©èœãæãåçãã€ææ©çã«åžåããŸãã ããã¯ãçŸãããã©ã³ã¹ã®åããèšèªã®çŽ æŽãããäŸã§ãïŒãããã£ãŠãæ°ããèšèªãèšèšãããšãã«èŠãããšãã§ããçŽ æŽãããäŸã§ãïŒã ããããJavaãCïŒãã·ã¹ãã ããã°ã©ãã³ã°èšèªã§ã¯ãããŸããã
DãGoãRustãSwiftãNimãããã³æ¯èŒçå€ãObjective CïŒãã®éåžžã«èå³æ·±ãæ©èœ-ã©ã³ã¿ã€ã ïŒãåç §ããæ°ããïŒC ++ã«é¢é£ããïŒèšèªã®ã°ã«ãŒãããã1ã€ããããšã«æ³šæããŠãã ããã
ãããã®èšèªã®äœãé¢çœãã§ããïŒ
Dããå§ããŸãããããã®èšèªã¯ãæ¹åãããC ++ããšããŠéçºãããŸãããå®éãå€ãã®æŠå¿µã¯ããæèœã«äœãããŠããŸãã ã³ã³ãã©ã¯ãããã°ã©ãã³ã°ã¯æ éã«å®è£ ãããFPããããã¡ã¿ããã°ã©ãã³ã°ã®ç¹å®ã®å®è£ ããããŸãïŒãããããã£ãšããŸããããŸãïŒïŒã ãã®èšèªã¯ãã€ãã£ãã³ãŒãã«ã³ã³ãã€ã«ãããŸããã€ãŸãããäœç³»çãªããµããããããšãã§ããŸãã ããããç§ã¯Dã§ãã¹ãŠãèŠãé ãæ©èœã匷調ããŸããã ããã§ããèšèªã¯ããããã³ã°ãã®èç©ãšããç¹ã§C ++ã®ãã¹ããã©ã£ãŠããããã«èŠããŸãããããã¯ã³ã³ãã€ã©ã³ãŒãïŒç§ã¯å®æçã«è¡ã£ãŠããŸãïŒã調ã¹ããšãã«ç¹ã«é¡èã§ãã
è¡ã è¯ãç¹ãšããŠã¯ãã€ã³ã¿ãŒãã§ã€ã¹ã®æ§é åä»ãããããŸãã æ©äŒã¯éåžžã«èå³æ·±ãã§ããç§ã¯ããã䜿ãããã ãã§ã...
èšåãã䟡å€ããããã1ã€ã®ããšã¯ãç¶æ¿ã®ä»£ããã«åã蟌ã¿ã§ãã ããªãã¯ãããèŠããšããããªãã¯æã-ããããããã¯Cã«æ»ã£ãŠããã¯ãã§ãïŒ å®è£ ã¯éåžžã«ç°¡åã§ããããã«ããããããããã®ãœãªã¥ãŒã·ã§ã³ã¯ã©ãã»ã©ãšã¬ã¬ã³ãã«èŠããŸããã èšèªã«çµã¿èŸŒãŸãããã«ãã¹ã¬ããã®ãµããŒãã楜ããã§ãã
éã äž»ãªæ©èœã¯ãã³ã³ãã€ã«æã®ã¹ããŒããã€ã³ã¿ãŒãšãã§ãã¯ã®ãã°ãããã·ã¹ãã ã§ãã ã¯ããå®ç§ãªèšèªãåãå ¥ãã䟡å€ã¯ãããŸãããå€ãã®äººã¯ã·ã¹ãã ãè€éããããšäžæºãè¿°ã¹ãŠããŸãã å®éãäœåãªãã®ã¯äœããããŸããããå€å žçãªãã€ã³ã¿ãŒãæåŠããããšã¯ãããŸããïŒã¡ãªã¿ã«ãRustã§ã¯ç Žæ£ããããåçŽã«å®å šã§ã¯ãããŸããïŒã ãããçµã¿åãããããšãã§ããŸããïŒ ã§ããŸãã å¯èœæ§ã«ã€ããŠã¯äœãæªãããšã¯ãããŸãã;ãããã®äžåšã¯ã²ã©ãã§ãã
ãããŠãObjective Cã«èšåããããšæããŸããèšèªã¯ããªãå€ãã§ãããOSXã®äžçã«ç²ŸéããŠããªã人ã¯ããã®äžã«å€ãã®èå³æ·±ããã®ãèŠã€ããã§ãããã ããã¯OOPã®ç¹å¥ãªå®è£ ã§ããç¹ã«ãã¡ãœãããã»ã¬ã¯ã¿ãŒãã¡ã¿ã¯ã©ã¹ã®ã·ã¹ãã ãçŽæ¥åŒã³åºã代ããã«ã¡ãã»ãŒãžãéä¿¡ããŸãã Smalltalkãããã®èšèªã«ç§»è¡ããããšã«ããããããã®æ©èœã«ãããã³ã³ãã€ã«ãããèšèªã§å€ãã®é©ãã¹ãããšãè¡ãããšãã§ããŸãããããã¯ã解éãããã¹ã¯ãªããã§ã®ã¿å®çŸã§ããŸãã ç§ã®æèŠã§ã¯ãçŽ æŽãããæ©äŒã§ãã
次ã®èå³æ·±ã質åã¯ãèšèªã®æ©èœãšã©ã€ãã©ãªã«å ¥ããããšãã§ãããã®ãšã®é¢ä¿ã§ãã ãã®ãããé·ãéãæã匷åãªãŠãããŒãµã«ããã°ã©ãã³ã°èšèªã§ãã£ãã®ã¯C ++ã§ããïŒãããŠãä»ã§ãããã¹ãŠã®çæã«ãããããããããããæ®ã£ãŠããŸãïŒã 代æ¿æ段ã¯ãããŸããã§ããããC ++èªäœã¯é·ãéããªããã£ãããšéçºãããŠãããããã°ã©ããŒã¯åžžã«ããå€ããæ±ããŠããŸãïŒ ãããã«ããŠããããŸããŸãªã©ã€ãã©ãªãåºçŸããéçºããå§ããŸããã æšæºã©ã€ãã©ãªããã§ã«ååšããŠãããšããäºå®ã«ãããããããä»ã®å€ãã®ã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯ã¯ãå€ãã®å Žåããã®æ©èœãã¯ã©ã¹ã§è€è£œããŸããã é¡èãªäŸã¯æååã§ãã C ++ã«ã¯æšæºã®æååïŒstd :: stringïŒãããããã«èŠããŸãããã»ãšãã©ãããŸãã-ã»ãŒãã¹ãŠã®å€§èŠæš¡ãªã©ã€ãã©ãªã«ã¯ç¬èªã®æååã®å®è£ ããããŸãã CStringïŒMFC / ATLïŒãQStringïŒQtïŒãTStringïŒVCLïŒãwxStringïŒwxWidgetsïŒã
åãéåœãããŸããŸãªã³ã³ããïŒåçãªé åãšãªã¹ãïŒãããŸããŸãªéå±€ã®åºæ¬ã¯ã©ã¹ïŒãªããžã§ã¯ã-æšæºã©ã€ãã©ãªã«ã¯ãã®ãããªãã®ããªãããšãèªããå¿ èŠããããŸãïŒã«åœ±é¿ãäžããŸããã ç§ã¯ãã»ãšãã©ãã¹ãŠã®å°ããªããã°ã©ã ïŒã©ã€ãã©ãªãŒã§ãããïŒã«èŠãããåçŽåã®åå®çŸ©ã«ã€ããŠè©±ããŠããã®ã§ã¯ãããŸããã ããããçš®é¡ã®UINTãuintãu32ãDWORDãuint32_tãæãåºããŠãã ãã...ããããèšèªã®èšèšãç 究ããããã®æãèå³æ·±ããªããžã§ã¯ãã¯ãããããBoostã©ã€ãã©ãªïŒ Boost Incubatorããã³ãã®ä»ã®éå ¬åŒã®æ¡åŒµæ©èœã«ããå ¬åŒã®éšåãšUnder Constuctionã¹ããŒã¿ã¹ã®ã©ã€ãã©ãªã®äž¡æ¹ïŒã§ãã 圌女ã«æ»ããŸãã
C ++ã¯æ¬¡ã®ããã«èŠãããšèšããŸãïŒå°ããªèšèªã³ã¢ãå°ããªæšæºã©ã€ãã©ãªãããã³äºãã«äº€å·®ããéšåçã«æšæºã©ã€ãã©ãªãšäº€å·®ããèšèªæ©èœã®ãšãã¥ã¬ãŒãããé©çšãããã¿ã¹ã¯ãŸã§ã®ããŸããŸãªè²¬ä»»ãææããå€ãã®ãµãŒãããŒãã£ã©ã€ãã©ãªã å€ãã®ã©ã€ãã©ãªã¯ã«ãŒãã«ã®ã¿ã«äŸåããŠããŸãã ãã®ãããªãã®ïŒ
å°ããªèšèªã³ã¢ã¯å€ãã®èšèªæ©èœããµããŒãããŠããããããã°ã©ããŒã«ãèšèªæ©èœã®ãšãã¥ã¬ãŒã·ã§ã³ããæžãããã«ä¿ããŸãã å€ãã®ããã°ã©ããŒãããããã察å¿ãããšãã¥ã¬ãŒã·ã§ã³ãå€æ°ãããŸãã éåžžããããã¯äºãã«äºææ§ããããŸããã ããã°ãïŒéæšæºããã³/ãŸãã¯æ¢åã®èšèªæ©èœã®æçœã§ãªã䜿çšã«åºã¥ããŠæ§ç¯ãããŠããããïŒ; ã³ã³ãã€ã«ãšãããã°ãé£ãããå®éã«ã¯ç解ãé£ããã äžæ¹ãå°ããªã«ãŒãã«ã§ã¯ãèšèªã«äœåãªãã®ãå«ãŸããªãããã«ããããšãã§ããããã¯è¯ãããšã§ãïŒããã«ãã·ã¹ãã ããã°ã©ãã³ã°ã«å¿ èŠã§ãïŒã è«äºïŒ å®éã«ã¯æ±ºå®çãªççŸã ãããç§ã®å®ç§ãªèšèªçµç¹å³ã§ãã
äžå€®ã«ã¯ãã³ã¢èšèªã®ã³ã¢ããããŸãã ãã®åšèŸºã¯ãèšèªæ¡åŒµæ©èœãã§ãããèšèªæ¡åŒµæ©èœã¯æ§æçã«ãµããŒããããŠããç¹å®ã®èšèªéšåã§ããããããžã§ã¯ãã®ã¢ã»ã³ããªäžã«ãªã³/ãªããåãæ¿ããããç¬èªã®å®è£ ã«çœ®ãæããããšãã§ããŸãã ããã«-æ±çšããã°ã©ãã³ã°ã«é¢é£ãããã¹ãŠããµããŒãããæšæºã©ã€ãã©ãªã ããã³ãã®åšèŸº-ã«ãŒãã«æ©èœããšãã¥ã¬ãŒãããããšããªãããçŽç²ã«é©çšãããåé¡ã解決ããã¢ããªã±ãŒã·ã§ã³ã©ã€ãã©ãªã ã¢ããªã±ãŒã·ã§ã³ã©ã€ãã©ãªã¯ç¹å®ã®ãã®ãå®è£ ããå¿ èŠããããŸãã ããã¯äžå¯æ¬ ã§ã-äžè¬çãªãã®ãšç¹å®ã®ãã®ã®éãã ã°ã©ãã£ãã¯ã¹ããããã¯ãŒã¯ãéã䜿çšããŸãã ç¹å®ã®æ°åŠãæå·ãäžéšã®ç¹å¥ãªåéã®ã¢ããªã±ãŒã·ã§ã³ã©ã€ãã©ãªã ããŸããŸãªãã¡ã€ã«åœ¢åŒãããŒã¿ããŒã¹ãããŸããŸãªãµãŒãã¹ã§åäœããŸã...ãããã¯ãã¹ãŠç¹å®ã®é©çšé åã§ãããã©ã€ãã©ãªã®åœ¢åŒã§å®è£ ããå¿ èŠããããŸãã ãã ãããªãã¬ã¯ã·ã§ã³ãŸãã¯ãã«ãã¹ã¬ãããé«éé¢æ°ãŸãã¯ã³ã«ãŒãã³ã¯ãèšèªã®èŠ³ç¹ããåºæ¬çãªãã®ã§ãããèšèªã§ãµããŒããããå¿ èŠããããŸãïŒããã©ã«ãã®å®è£ ãå¥ã®ãã®ã«çœ®ãæããæ©èœãæã€ãã®ããããŸãïŒã
Boostã©ã€ãã©ãªã«æ»ããŸãã Boostããèšèªãããã°ã©ããŒãæããããã¯ããã«ãã£ãããšçºå±ããæ¹æ³ã®æãæ確ãªäŸãšããŠè©±ããŸãããã Boostã©ã€ãã©ãªã®ããªãã®ååã¯ãåºæ¬çã«èšèªæ©èœã®ãšãã¥ã¬ãŒã·ã§ã³ã§ãã ãããããã€ããBoostã©ã€ãã©ãªã«é¢ããåå¥ã®èšäºãæžãããšã«ãªããŸããããã«ãããã°ã©ãã³ã°èšèªã«ãããã®æ©èœãçŽæ¥å«ãããšããæèã§ãããã«ãããã®ã®ç°¡åãªæŠèŠã瀺ããŸãã Boostã«ã¯ã©ã€ãã©ãªã®ç¬èªã®åé¡ããããããã«ã¯ãŸã£ããåæããŸããïŒãã ããåé¡ã®ç®æšã¯ç°ãªããŸãïŒã äžéšã®ã©ã€ãã©ãªã¯ã確ãã«ãæšæºã©ã€ãã©ãªãã°ã«ãŒãã«å±ããŸãã äžéš-äžè¬çã«é©çšãããã©ã€ãã©ãªã ããããéèŠãªéšåã¯ããŸãã«èšèªèªäœãã³ã¢ã«æ¬ ããŠãããã®ã§ãïŒ ããã§ã¯ãã©ã€ãã©ãªã®åºåã説æã¯ããŸããïŒããã¯å¥ã®èšäºã®ãããã¯ããŸãã¯ããã€ãã®ãããã¯ã§ãïŒã 代ããã«ãèšèªã³ã¢ãåç §ããããŒã¹ãã©ã€ãã©ãªã®ã©ã€ãã©ãªã®ãªã¹ãïŒäžå®å šïŒïŒãæäŸããŸãã
- æŽæ°-æŽæ°åã®ã¡ã¿æ å ±ãšç¹æ§
- å€ç²ŸåºŠ-ä»»æã®ç²ŸåºŠã®æ°å€GMPãMPIRãMPFRãåããäœæ¥ã©ã€ãã©ãªã®ã©ãããŒ
- any-ãŠãããŒãµã«ãã€ãããã¯ã¿ã€ã
- optional-ãªãã·ã§ã³ã®ã¿ã€ããå€å; çè«çã«ã¯ãèšèªã«çµã¿èŸŒã¿ãnullableãšçµ±åããå¿ èŠããããŸã
- ããªã¢ã³ã-代æ°ããŒã¿åïŒååãã¿ã°ä»ããŠããªã³ïŒ
- ããªããã»ããµ-ã·ã¹ãã ããªããã»ããµã§ã®ã¡ã¿ããã°ã©ãã³ã°
- inentity_type-äžæã®ååãçæããããã®ãã«ããŒ
- assign-ã³ã³ããã®å å¡«ã«é¢é£ããè€æ°æäœ
- mpl-ã³ã³ãããŒãšãã®æäœãå ¥åããŸã
- ãã¥ãŒãžã§ã³-ã¿ã€ããšå€ã®ã³ã³ãããŒãããã³ãããã«å¯Ÿããæäœ
- tuple-ã¿ãã«
- bind-é¢æ°ã®éšåçãªé©çšã䜿çšããŠäœæãããæ©èœãªããžã§ã¯ã
- é¢æ°-é¢æ°ãªããžã§ã¯ã
- lambda-ã©ã ãé¢æ°; ãšããã§ãããã€ãã®ç¹ã§c ++ 11ã®åªããã©ã ãã
- local_function-ãã¹ããããé¢æ°ã®ãšãã¥ã¬ãŒã·ã§ã³
- signal2-ã·ã°ãã«ãšã¹ããã
- ã³ã³ããã¹ã-ã¹ããªãŒã ïŒã¹ã¿ãã¯ãšã¬ãžã¹ã¿ïŒã®ç¶æ ã®ä¿åãšåŸ©å
- ã³ã«ãŒãã³-ã³ã«ãŒãã³ã®å®è£
- foreach-åéãµã€ã¯ã«
- ãã©ã¡ãŒã¿ãŒ-ååä»ãé¢æ°ã®åŒæ°ã®ãšãã¥ã¬ãŒã·ã§ã³
- scope_exit-èšèªã³ã³ã¹ãã©ã¯ããDèšèªã§ã¯ã¹ã³ãŒãïŒexitïŒãã¹ã³ãŒãïŒsuccessïŒãã¹ã³ãŒãïŒfailureïŒãšåŒã°ããGo-defer
- type_erasure-ã©ã³ã¿ã€ã ããªã¢ãŒãã£ãºã ã®ä»£æ¿å®è£
- predef-OSãã³ã³ãã€ã©ããã©ãããã©ãŒã ã«é¢ããã¡ã¿æ å ±...ã
- typeof-typeof / decltypeæŒç®åã®ãšãã¥ã¬ãŒã·ã§ã³
- ãšã³ãã£ã¢ã³-ç°ãªããã€ãé ã®æ°åãæ±ã
ããã¯å®å šãªãªã¹ãã§ã¯ãªãããšãæãåºãããŠãã ããïŒãããŠãããã§Boostæ¡åŒµã©ã€ãã©ãªãèŠãŠããŸããããããã«ã¯å€ãã®èå³æ·±ããã®ããããŸã-ããšãã°ãContractãHanaãIntrospectionãMirrorãReflection ...ïŒã ãã¹ãŠã®ã©ã€ãã©ãªããèšèªã³ã¢ã«å«ãŸããã¹ãã§ã¯ãªãããšã«æ³šæããŠãã ãããäžè¬çãªå Žåãã«ãŒãã«ã«å«ããã®ã¯ããäžéšã®ïŒãããŠå€ãã®ã©ã€ãã©ãªã«å ±éããïŒéšåã ãã§ååã§ãããã®ãªã¹ãã®å€ãã®ã©ã€ãã©ãªã¯ãŸã£ããå¿ èŠãªãããšãããããŸãã ãŸããèšèªã³ã¢ã«å«ããããšã«ãããããŸããŸãªæ©èœã®æ¢åã®äººçºçãªå®è£ ã«èª²ããããå¶éã®å€ããåé¿ãããŸãã 代æ°çããŒã¿åããŠãããŒãµã«ãã€ãããã¯åanyããªãã·ã§ã³åãååä»ããã©ã¡ãŒã¿ãŒãªã©ã®åªããæ©èœã¯ããã¡ãããèšèªã¬ãã«ã§æé©ã«å®è£ ãããŸãã
ããã§ã¯ãèšèªæ¡åŒµæ©èœã«ç§»ããŸãããã ããã¯äœã§ããªã玹ä»ããã®ã§ããïŒ
å®éããã®ãããªãæ¡åŒµãã¯C ++ã«äœããã®åœ¢ã§ååšããããããåå¥ã®ã°ã«ãŒããšããŠéžæãã人ã¯ããŸããã äŸã¯ãC ++ã®ã¡ã¢ãªå²ãåœãŠã·ã¹ãã ã§ãã èšèªã«ãŒãã«ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãæ°ããæŒç®åããã³åé€æŒç®åã§ãã ãã®æ§æã¯èšèªã³ã¢ã§æ確ã«èšè¿°ãããŠããããã®ã»ãã³ãã£ã¯ã¹ïŒã¡ã¢ãªå²ãåœãŠãšè§£æŸïŒã¯ããã¥ã¡ã³ãã§æ確ã«èšè¿°ãããŠããŸãã åæã«ããã®èšèªã¯æšæºã®å®è£ ãæäŸããŸãããå¿ èŠã«å¿ããŠãããã®æŒç®åããªãŒããŒã©ã€ãããç¬èªã®ã¡ã¢ãªå²ãåœãŠã·ã¹ãã ãäœæã§ããŸãã 2çªç®ã®äŸã¯ãã©ã³ã¿ã€ã ã¿ã€ãèå¥ãRTTIã§ãã ãã®äŸã§ã¯ãæ¡åŒµæ©èœã®åææ§ãšããå¥ã®åŽé¢ã瀺ããŸãã
ç§ã¯ãã€ã¯ãã³ã³ãããŒã©ã䜿ã£ãå¹ åºãçµéšããããéåžžã«å°éã®ãªã³ããŒãã¡ã¢ãªã§ã¯ã¡ã¢ãªãéçã«å²ãåœãŠãã ãã§ããããããŒããã¯ãªããRTTIããããŸããã§ããã
CoreãšExtensionsã®å¯äžã®éãã¯ãã³ã¢èŠçŽ ããªãŒããŒã©ã€ãã§ããªãããšã§ãã ãããã£ãŠãæ¡ä»¶ä»ãifã¹ããŒãã¡ã³ãã¯æ確ã§ããããã®ããžãã¯ã¯ã«ãŒãã«ã«æ¥ç¶ãããŠããããã®å®è£ ãä»ã®ãã®ã«çœ®ãæããæ¹æ³ã¯ãããŸããã æ¡åŒµæ©èœã¯æ§æã¬ãã«ã§ã«ãŒãã«ã«ç»é²ããã ç¹å®ã®ããã©ã«ãã®å®è£ ãèšèªã§æäŸãããŸã ãããã¯ããã°ã©ãã®95ïŒ ã«é©ããŠããŸãã æ®ãã®5ïŒ ã¯ãèšèªã€ã³ã¿ãŒãã§ãŒã¹ã«å¯Ÿå¿ããå®è£ ãäœæããããç¹å®ã®å Žåã«å®å šã«ç¡å¹ã«ããããæåŸ ãããŠããŸãã
ä»ã®ãã®ãããªæ¡åŒµæ©èœã¯
- ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒRust-Gcãåç §ïŒ
- åç §ã«ãŠã³ãã«ããã¡ã¢ãªç®¡çïŒRust-RcãArcãåç §ïŒ
- é·ãç®è¡ïŒããã§ã¯ãç®è¡ããªãã©ã«ã¬ãã«ãå«ããŠèšèªã«çµ±åããããšãéèŠã§ã.128ãããæ°ãªã©ã®é·ãå®æ°ã¯ãèªç¶ãªæ¹æ³ã§èšè¿°ããå¿ èŠããããŸã-ãã¹ãŠã®å®è£ ã§åãæ°å€ãªãã©ã«ã®åœ¢åŒã§ïŒïŒ
- ãã«ãã¹ã¬ããïŒgoèšèªã®goæŒç®åïŒ
- ãªãã¬ã¯ã·ã§ã³ïŒã¯ããæåã§å®è£ ããæ¹æ³ã¯ãããããããŸãããã³ã³ãã€ã©ãããåªããŠããŸãããšã«ãã誰ããã®ã¿ã¹ã¯ãå®è¡ã§ããŸããïŒ
- ä»®æ³æ§ãšãã«ãã¡ãœãã
- ä¿¡å·ãšã¹ããã
- ãªããžã§ã¯ãåã¹ããŒã«ãŒ
- çµã¿èŸŒã¿ã¹ã¯ãªãã
- rtti
- äŸå€åŠçïŒå®è£ ã«ã¯ããŸããŸãªæ¹æ³ãããããŸã£ããå¿ èŠãªãå ŽåããããŸãïŒ
- æµ®åå°æ°ç¹ïŒã¯ããäžéšã®ãã€ã¯ãã³ã³ãããŒã©ãŒã§ã¯FPUããªããã©ã€ãã©ãªã¯æµ®åå°æ°ç¹ã§ã®åäœããšãã¥ã¬ãŒãããŸãïŒ
ãããŠãããããç§ãããã«æãåºããªãã£ãããšã®ã¯ããã«ã
æåŸã«ãçæ³çãªããã°ã©ãã³ã°èšèªã®ã¢ã€ãã¢ã®æ ¹åºã«ãã1ã€ã®å²åŠçååã«ã€ããŠèª¬æããŸãã éåžžããã©ãŒã©ã ã§ã®ãã£ã¹ã«ãã·ã§ã³äžã«ãèšèªXã«Yã®æ©èœã¯ãªããšèšããšããAãBãCã®æ©èœãæã¡ãæŸèæDãEãããããšã Fãããããç§ãã¡ã¯ã»ãšãã©YãåŸãŸããã¯ããããã§ãã ããããç§ã¯ãã®ã¢ãããŒãã奜ãã§ã¯ãããŸããã ãã®ãããªããã°ã©ããŒã¯ãè¿·è·¯ãéãå°é£ãªéã®ãã«æºè¶³ãããšæ³åã§ããŸãã è¿·è·¯ãééããããšã¯ã§ããŸãããæ²ç·ã®çµè·¯ã¯æããã§ã¯ãããŸããã è¿·è·¯ã®ä»£ããã«ãä»»æã®ãã€ã³ãããä»ã®ãã€ã³ããŸã§çŽç·ã«æ²¿ã£ãŠé²ãããšãã§ããåºã ãšãããšãªã¢ã欲ããã§ãã ãŸã£ããã«ã