12/12(å)ã«ã°ãªã¼æ ªå¼ä¼ç¤¾æ§ã®ã»ããã¼ä¼å ´ããåããã¦
Boost.åå¼·ä¼ãéå¬ãã¾ãããid:sotarokãããããã¨ããããã¾ããï¼
ãçºè¡¨ã®ã¾ã¨ãã¨ææ³ã
ã»Boostライブラリ 一周の旅(id:faith_and_brave, @cpp_akira)
ããBoost 1.40.0ã«å«ã¾ããã©ã¤ãã©ãªã®ãã¡ã74ã©ã¤ãã©ãªãç´¹ä»ãã
ããããã«å ãã¦ãä¸åã§ããããã³ãã¬ã¼ãã¡ã¿ããã°ã©ãã³ã°ãã¨ããã®ã話ãã¾ããã
ãã(1å以å
ã«ã¯çµãããªãã£ãã®ã¨ãããã¡ãã£ã¨ãã£ããããããã£ãã§ãã)
ããä»åã®åå¼·ä¼ã§ã¯ããã¦Boostãç¥ã£ããã¨ããæ¹ã«ã¯Boostã使ãå§ãããã£ããã¨
ãããªã£ã¦ããã ããã°å¹¸ãã§ãã
ããåçç¹ã¨ãã¦ã¯ã1æéã»ãã·ã§ã³ã®äºå®ãæ°ã¥ããã40åããªã¼ãã¼ãã¦ãã¾ã£ã¦ãããã¨ã§ããã
ãã解説ããã©ã¤ãã©ãªã74åããã£ãã¨ããã®ã¯ããã¾ãããæé管çãã§ãã¦ãªãã£ãã®ã
ãã大ããã£ãã§ããâ¦ããã®å¾ã®ã»ãã·ã§ã³ãæ¥ã足ã«ãªã£ã¦ãã¾ã£ã¦ããããªããã
ã»Boost.MultiIntrusivedex(k.inaba, @kinaba)
ããç§ãæè¿ããã£ã¦ãã©ã¤ãã©ãªã§ããBoost.MultiIndexã¨ãBoost.Intrusiveãç´¹ä»ãã¦ããã ãã¾ããã
ããBoost.MultiIndexã¯ããã¨ãã°ä»¥ä¸ã®ãããªãã¼ãºããã£ãå ´åã«
ããã»é£æ³ã³ã³ããã¨ãã¦ã®ã¢ã¯ã»ã¹ã¨ã·ã¼ã±ã³ã¹ã³ã³ããã¨ãã¦ã®ã¢ã¯ã»ã¹ãåæã«ã»ãã
ããã»è¤æ°ã®ãã¼ããã¤é£æ³ã³ã³ãããã»ãã
ããã¢ã¯ã»ã¹é åºãã³ã³ããã®ããªã·ã¼ã¨ãã¦è¨å®ãããã¨ã«ãã£ã¦
ããå¤å¹»èªå¨ã«å¯¾å¿ã§ãã夢ã®ãããªã³ã³ããã§ãã
ããå
é¨å®è£
ã¯ãã©ã¡ã¼ã¿åç¶æ¿ã使ã£ãç¶æ¿ã®ãã§ã¼ã³ã«ãããã®ã«ãªã£ã¦ãã¦
ããé常ã«å¹ççã§ãããã¨ãã¾ã(ã¢ã³ããã¥ã¡ã³ããª)Indexãèªä½ããæ¹æ³ã話ãã¦ããã ãã¾ããã
ããä»å¾ã®å±æã¨ãã¦ã¯MultiIndexã®ããªã·ã¼ã¨ãã¦ãæ¿å
¥ãO(1)ã§ãããã®ãããªåæä½ã«ãããè¨ç®éã
ããæå®ã§ããããã«ããã°ããªã便å©ãªããããªãããã¨ãã£ã話ãã§ã¦ãã¾ããã
ãã究極çã«ã¯ãæ¨æºã³ã³ããã¨ãã¦std::containerã¨ãããã ã²ã¨ã¤ã®ã¯ã©ã¹ãæä¾ããã
ããvectorãmapããstd::containerã®ããªã·ã¼ã®çµã¿åããã®å¥åã«ããã
ããã¿ãããªãã¨ã«ãªãã¨ãããããããããªãããªã¼ã¨æã£ã¦ãããã¾ãã
ããBoost.MultiIndexã¯ãè¤æ°ã®ã¤ã³ããã¯ã¹ãæã¤ãã¨ããåç´ãªååããã¯
ããæ³åã§ããªããããªå¯è½æ§ãæã£ã¦ããã®ã§ä»å¾ã楽ãã¿ã§ãã
ããç§ã®ã»ãã·ã§ã³ã®ãã¨ã§æéãæ¼ãã¦ããã«ãé¢ããããããå
¨ãæããããã
ããå½åã®äºå®éãã®æéãã£ããã«ãããããã¨ãããã°ãããçºè¡¨ã§ããããããã¨ããããã¾ãã
ã»俺Tokenizerを作る〜Boost.Tokenizerのカスタマイズ〜(id:tt_clown, @tt_clown)
ããPolicy-Based Designãå¦ã¶ããã«ãBoost.Tokenizerã®è¨è¨ãã©ããªã£ã¦ããã®ãã
ããã©ããã£ã¦ã«ã¹ã¿ãã¤ãºããã®ããç´¹ä»ãã¦ããã ãã¾ããã
ããã¯ã©ã¹ã®æ¯ãèããå¤é¨ããæå®ãããã¨ã§ãã«ã¹ã¿ãã¤ãºå¯è½ãªã¯ã©ã¹ã«ãã
ãããModern C++ Designãã§åºã¾ã£ãPolicy-Based Designã¨ããè¨è¨æ¹æ³ã«ã¤ãã¦ã®ã»ãã·ã§ã³ã§ãã
ããPolicy-Based Designã¯ãããã§ãå¿ç¨ã®ãããã®ãªã®ã§ãã¯ããã¦ç¥ã£ãæ¹ã¯ãã²
ããã¯ã©ã¹ãã³ãã¬ã¼ããè¨è¨ããéã®é¸æè¢ã¨ãã¦å ãã¦ããã ããã°ã¨æãã¾ãã
ã»Boost.Graphの入門の入門(Egtra, @egtra)
ããã°ã©ãæ§é ã表ç¾ããããã®Boost.Graphã©ã¤ãã©ãªãç´¹ä»ãã¦ããã ãã¾ããã
ããã°ã©ãæ§é ã¨ã¯ä½ããç°¡åãªä½¿ãæ¹ã¾ã§ãé常ã«ä¸å¯§ã«è§£èª¬ãã¦ããã ãã¾ããã
ããç§ããã£ã¨å¦ã³ããã¨æãããªããªãæãåºãã«ããã£ãã©ã¤ãã©ãªã§ãã£ãã®ã§
ããå人çã«ãã²Boost.Graphãèªããã²ã¨ãã»ããï¼ã¨ãããã¨ã§Twitterã§
ãããããããçºè¨ããã¦ããegtraãããã¤ãã¾ãã¦çºè¡¨ãã¦ããã ããã¨ã«ãªãã¾ããã
ããBoost.Graphã¯æ¥æ¬èªè³æãå°ãªãã®ã§ãegtraããã«ã¯å¼ãç¶ãBoost.Graphã«ã¤ãã¦ãããã話ãã¦ãããããã§ããã
ã»Introduction to The Boost.Polygon library(id:dark-yoshi, @dark_yoshi_cpp)
ããå æ¥ãBoostã«æ¡æãããã°ããã®Boost.Polygonãç´¹ä»ãã¦ããã ãã¾ããã
ãã以åãç§ã®ããã°ã§ãç´¹ä»ãããã¨ã¯ããã®ã§ãããããã¥ã¡ã³ããããã£ã¨èªãã§æ¸ãããã®ã ã£ãã®ã§
ãããããã£ãå°éç¹åã¨ããã»ãã·ã§ã³ã§ç´¹ä»ãã¦ããã£ãæ¹ãç¾ä¸åããã§ããã
ãããµã³ãã«ã®ã³ã¼ãã§ã¡ãã£ã¨æã£ãã®ã¯ãã³ã³ã¹ãã©ã¯ã¿ã«ããåæåã§æ¸ã¾ããããããªã¨ããã
ããã³ã³ã¹ãã©ã¯ã¿ + set_ãªãã¨ããã«ãªã£ã¦ããã®ã¯ãã©ã¤ãã©ãªè¨è¨ä¸ã®äºæ
ããã£ãã®ã
ããåã«ãµã³ãã«ãéå¹çãªãã®ã«ãªã£ã¦ããã®ããã©ããªãã ããã¨ããã¨ãã
ãã(ããã¾ãããããã¥ã¡ã³ãèªã¾ãã«æ¸ãã¦ã¾ã)
ãããã¨ãboost::polygonãã¼ã ã¹ãã¼ã¹ã®å¥åã¨ãã¦gtlã¨ããååã«ãã¦ãã®ã¯
ãããã®ã©ã¤ãã©ãªã®å
ã
ã®ååããGTL(Geometry Template Library)ãã ã£ãããã§ããã
ããæ£å¼å
¥ãã決ã¾ã£ãã°ãããªã®ã§ããã¥ã¡ã³ããå¤ãã®ããããã¾ããã
ã»Boost.Coroutine(id:melpon, @melponn)
ããBoostã«ã¯æ£å¼ã«å«ã¾ãã¦ã¯ãã¾ããããé常ã«å¼·åãªã©ã¤ãã©ãªã§ããBoost.Coroutineãç´¹ä»ãã¦ããã ãã¾ããã
ããæ£å¼å
¥ããã¦ããªãã©ã¤ãã©ãªã®ããã使ãæ¹ããããã³ã«ã¼ãã³ã¨ã¯ä½ãããå
é¨å®è£
ã
ããã³ã«ã¼ãã³ã®ã¦ã¼ã¹ã±ã¼ã¹ãªã©ã話ãã¦ãããã¾ããã
ããä¼å ´ã«ã¯ãBoost.Coroutineã®ä½è
ã¨è°è«ãã¦æ¡å¼µããããHamigaki.Coroutineã©ã¤ãã©ãªã®
ããä½è
ã§ããéµä¾¿ã¯ã¿ãããã(id:y-hamigaki)ãæ¥ããã¦ãã¾ããï¼
ããããã°ã§ä½åº¦ãå©ãã¦ããã ããã®ã§ãã²ãä¼ããã¦ããããã話ãèãããã£ãï¼ç´æ¥ã礼ãè¨ãããã£ãã®ã§
ããä»åãä¼ãã§ãã¦ããããã£ãã§ãã
ããã³ã«ã¼ãã³ã¨ãããã®ããã¹ã¬ããããªãã§ãèªåã§å¶å¾¡ãããã®ã ã¨èããæ¶ã
ãã¦ãé¨åã解æ¶ããã¾ããã
ããã¦ã¼ã¹ã±ã¼ã¹ããè¦æ¹ãå¤ãããã¨ã«ãã£ã¦ãããã§ã使ãéããããããªã®ã§ãä½ãèãã¦ããããã§ããã
ã»Boost.Asio(id:xyuyux, @yuyu_type)
ããBoostã®éåæå ¥åºå(ãããã¯ã¼ã¯)ã©ã¤ãã©ãªã§ããAsioãç´¹ä»ãã¦ããã ãã¾ããã
ããç§ãã¡ããã¡ããAsioã触ã£ã¦ã¯ããã®ã§ããé£ããã¦ãªããªãç解ã§ããªãã¨ããããã£ãã®ã§
ãããããã£ããã¥ã¼ããªã¢ã«çãªå
容ã¯é常ã«å©ããã¾ãã
ããããã¨ãCOMãã¼ãã¨éä¿¡ã§ããã¨ã¯æã£ã¦ãã¾ããã§ããã
ãããããã§ãããªããã®ã¨ãã»ã»ã»ã¨ããããã¨æãã¾ããããããããã¯Asioã使ããï¼ã¨æ¥½ãã¿ã ã£ãããã¾ãã
ã»Boost.Preprocessorでプログラミングしましょう(id:DigitalGhost, @DecimalBloat)
ããã¯ããéè¡ã®ãæéã§ãã(PPã®å
é¨å®è£
çãªæå³ã§ã)
ããããªããã»ããµã¡ã¿ããã°ã©ãã³ã°ã®ã©ã¤ãã©ãªã§ããBoost.Preprocessorãç´¹ä»ãã¦ããã ãã¾ããã
ããPPã®ä½¿ãã©ããã¯ãã£ã±ãå¯å¤å¼æ°ã ãããã¨æã£ãã®ã¨æ¬¡ãããããããã¯ããã°ã§ã§ãããã®ã§ãã
ããC++0xã ã¨ã©ããããã®ãã¯ããæ¶ãå»ããã®ããç´¹ä»ãã¦ãããã¨ãããããããã§ãã
ããããã¨ãC++(runtime)ã®ã³ã¼ããPPã«ç½®ãæãã¦ããæèã®éç¨ã¯ã¨ã¦ãåå¼·ã«ãªãã¾ããã
ããç§ãæè¿PPãã¯ããã¦ããã³ãã¬ã¼ãã¡ã¿ããã°ã©ãã³ã°ã¿ããã«ã¯ãããªããªãã¨æã£ã¦ãã®ã§
ãããããã£ãç½®ãæãéç¨ãè¼ãã¦ããããã®ã¯é常ã«ããããã§ãã
ã»バグベアード入門(id:wraith13, @wraith13)
ããBoostã«å«ã¾ãã¦ããã©ã¤ãã©ãªã§ã¯ããã¾ãããé常ã«å¼·åãªã©ã¤ãã©ãªã§ãã
ããéå師ãã(id:wraith13)ä½ã®ãã°ãã¢ã¼ããç´¹ä»ãã¦ããã ãã¾ããã
ããç§ã以åãã使ããã¨æã£ã¦ããã®ã§ãããªããªãæãåºãªãã£ãã®ã§ãã®æ©ä¼ã«è§¦ã£ã¦ã¿ããã¨æãã¾ãã
ããif (optional
ãããããã¡ã¤ã©ãã«ãã¬ãã¸ã¨ãã¦ä½¿ããã®ã¯é常ã«ããããã®ã§ãã²è©¦ãã¦ã¿ã¾ãã
ã»shared_ptr & weak_ptr(id:Cryolite, @Cryolite)
ããBoost.SmartPtrã©ã¤ãã©ãªã«å«ã¾ãããboost::shared_ptr, boost::weak_ptrã«ã¤ãã¦è§£èª¬ãã¦ããã ãã¾ããã
ããshared_ptrã®åºæ¬çãªä½¿ãæ¹ã«å§ã¾ãããææãããææã«ã¦ã³ã¿ãã¨ãã£ãæ¦å¿µã
ããshared_ptrã®è¨è¨ææ³ãªã©ãèªã£ã¦ããã ãã¾ããã
ããå°ãªãã¦ããã®ã»ãã·ã§ã³ã«ããã¦ã¯ç§ããã ãã æ¸ããããUstreamã«é²ç»ä¿åããã¦ãã
ããã»ãã·ã§ã³åç»ãå®éã«è¦ã¦ããã ããã»ããããã¨æãã¾ãã
ãããã®ã»ãã·ã§ã³ã¯æ°¸ä¹
ä¿åãã¹ãã§ããããã²ããã°ã§ãæ¸ãã¦ããã ã
ããå
¨ã¦ã®ããã°ã©ãã«èªãã§ãããã¹ãå
容ã§ãããå人çã«ã¯æ¸ç±åãããã
ããæ¬å±ã®éåºåãã並ãã§ã§ãè²·ã£ã¦èªãã¹ãå
容ã ã¨æãã¾ãã
ãããã³ãã¬ã¼ãã¡ã¿ããã°ã©ãã³ã°ã®ã©ã¤ãã©ãªã§ããBoost.MPLã«ã¤ãã¦è©±ãã¦ããã ãã¾ããã
ãããã®ã»ãã·ã§ã³ã§ã¯ãPlaceholder Expressionã®å
é¨å®è£
ãã³ã³ãã¤ã«æç¡éãªã¹ãã
ããã¡ã¿é¢æ°ã®é©ç¨ãå±±ã«ãã³ã§ã¯ãªãé常ã®é¢æ°é©ç¨ã®ããã«ä¸¸ã«ãã³ã§æ¸ããããã«ãã
ããããã¯ãªã©ãç´¹ä»ãã¦ããã ãã¾ããã
ããå人çãªè¦æã¨ãã¦ã¯ãè³æå ã®è§£èª¬ãããå°ãå å®ããã¦ããã ãããã£ãã§ãã
ã»Boost.Python & Boost.PHP(id:moriyoshi, @moriyoshi)
ããæ¥é½ãé£ã³å
¥ãã§ã·ã§ã¼ãã»ãã·ã§ã³ããã¦ããã ããã¨ã«ãªãã¾ããã
ããBoostã«æ£å¼ã«ã¯å«ã¾ãã¦ãã¾ããããPHPã®æ¡å¼µã¢ã¸ã¥ã¼ã«ãæ¸ãã
ããmoriyoshiããä½ã®Boost.PHPãç´¹ä»ãã¦ããã ãã¾ããã
ããç§ã¯PHPãPythonã使ã£ããã¨ããªãã®ã§ãããã®ã©ã¤ãã©ãªã§ã®éçºå¹çã®ã¿ãè¦ã¦ããã®ã§ãã
ããæ¡å¼µã¢ã¸ã¥ã¼ã«ãæ¸ãã³ã¼ãã¯ã©ã¡ããã¨ã¦ãã³ã³ãã¯ãã§ãPHP/Pythonå´ãã使ç¨ããå ´åã¯
ãã(ãããã)ãããã®è¨èªã®é¢æ°ãå¼ã³åºãã®ã¨å
¨ãåãããã«ä½¿ç¨ã§ããããã§ãã
ãããã®æ©ä¼ã«ãã²Boostã«ææ¡ãã¦ããã ãããã§ããã
ãã
ããããããmoriyoshiããã®ã¿ã¤ãã³ã°é度ã¯ç¥ããã£ã¦ãã¾ãããï¼
ãããããªã®å§ãã¦ã¿ã¾ããï¼å
¥åè£å®ä½¿ã£ã¦ãªããããã§ããã
ããä¸ã®ä¸ã«ã¯ãããªæããã人ããããã§ãã(è¤ãè¨èã§ããï¼)
ããBoost.PHPã®ãããã説æã¯ãã¡ãããåç
§ãã ããã
ããhttp://wiki.github.com/moriyoshi/boost.php
ãä»å¾ã«ã¤ãã¦ã
大çæ³ã®ãã¡ã«çµãã£ãBoost.åå¼·ä¼ã§ããã第äºåã第ä¸åã¨ç¶ãã¦ãããã°ã¨æã£ã¦ãã¾ãã
ãã§ã«id:repeatedlyãããé¢è¥¿ã§ã®Boost.åå¼·ä¼ãéå¬ãã¹ãåãã¦ããã¦ããããã§ãã(参照)
é¢æ±ã®æ¹ãã¹ãã¼ã«ã¼ãéã¾ããäºå®ããåãã°ã¾ãéå¬ãããã¨æãã®ã§ã¿ãªãããã²ãååãé¡ããã¾ãã
ãã»ãã·ã§ã³åç»ã«ã¤ãã¦ã
Boost.åå¼·ä¼å½æ¥ã®ã»ãã·ã§ã³åç»ã«ã¤ãã¦ã¯Ustreamã®ãµã¤ãã«ã¦é²ç»ä¿åããã¦ããã¾ãã®ã§
ãã²ããããã ããã
http://www.ustream.tv/channel/boostjp