å°ãåïŒ2016 幎ç§ïŒã1C:Enterprise ãã¯ãããžãŒ ãã©ãããã©ãŒã ã®æ¬¡æããŒãžã§ã³ã®éçºäžã«ãéçºããŒã å ã§æ°ããæšæºããµããŒããããã©ãããšããåé¡ãçããŸããã ç§ãã¡ã®ã³ãŒãã§ã¯ãæ°ããæšæºã«åãæ¿ããããšã§ãå€ãã®ããšããããšã¬ã¬ã³ãã«ãã·ã³ãã«ã«ããããŠç¢ºå®ã«èšè¿°ã§ããããã«ãªããã³ãŒãã®ãµããŒããšã¡ã³ããã³ã¹ãç°¡çŽ åããããšèããŸãããã³ãŒã ããŒã¹ã®èŠæš¡ãšã³ãŒãã®ç¹å®ã®æ©èœããªããã°ã翻蚳ã«ç¹å¥ãªããšã¯äœããªãããã«æãããŸãã
ãåããªãæ¹ã®ããã«èª¬æãããšã1C:Enterprise ã¯ãã¯ãã¹ãã©ãããã©ãŒã ã®ããžãã¹ ã¢ããªã±ãŒã·ã§ã³ãè¿ éã«éçºããããŸããŸãª OS ã DBMS ã§å®è¡ããããã®ã©ã³ã¿ã€ã ãæäŸããç°å¢ã§ããäžè¬çã«ã補åã¯æ¬¡ã®ãã®ã§æ§æãããŠããŸãã
- ãäœå Windows О Linux
- HTTP(S)ãŸãã¯ç¬èªã®ãã€ããªãããã³ã«ãä»ããŠãµãŒããŒãšé£æºãã Windows, Linux, macOS
- ChromeãInternet ExplorerãMicrosoft EdgeãFirefoxãSafari ãã©ãŠã¶ã§åäœããŸã (JavaScript ã§èšè¿°)
- éçºç°å¢ïŒ) ã¯ã Windows, Linux, macOS
- ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã¯ Windows, Linux, macOS
- HTTP(S)çµç±ã§ãµãŒããŒã«æ¥ç¶ããã¢ãã€ã«ããã€ã¹ã§åäœããŸãã AndroidãIOSã Windows
- â ãªãã©ã€ã³ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãäœæããããã®ãã¬ãŒã ã¯ãŒã¯ã§ãåææ©èœãåãã AndroidãIOSã Windows
- éçºç°å¢ Javaã§æžããã
- СеÑвеÑ
ç§ãã¡ã¯ãã§ããéãç°ãªã OS ã«å¯ŸããŠåãã³ãŒããèšè¿°ããããã«ããŠããŸãããµãŒããŒã®ã³ãŒã ããŒã¹ã¯ 99% å ±éã§ãã¯ã©ã€ã¢ã³ãã®ã³ãŒã ããŒã¹ã¯çŽ 95% ã§ãã 1C:Enterprise ãã¯ãããžãŒ ãã©ãããã©ãŒã ã¯äž»ã« C++ ã§èšè¿°ãããŠãããã³ãŒãã®ããããã®ç¹åŸŽã¯æ¬¡ã®ãšããã§ãã
- 10äžè¡ã®C++ã³ãŒãã
- 14ãã¡ã€ã«ã
- 60äžã¯ã©ã¹ã
- 50 äžéãã®æ¹æ³ã
ãããŠãããããã¹ãŠã C++14 ã«ç¿»èš³ããå¿ èŠããããŸããã仿¥ã¯ãç§ãã¡ããããã©ã®ããã«å®è¡ãããããããŠãã®éçšã§äœã«ééããããã話ãããŸãã

å 責äºé
以äžã«èšèŒãããŠãããããŸããŸãªã©ã€ãã©ãªã®æšæºã¯ã©ã¹ã®å®è£ ã®é ã/éãåäœãã¡ã¢ãªæ¶è²»ãå°ãªã (ãŸãã¯å°ãªã) ããšã¯ãã¹ãŠã1 ã€ã®ããšãæå³ããŸããããã¯ç§ãã¡ã«ãšã£ãŠçå®ã§ããæšæºçãªå®è£ ãããŒãºã«æãé©ããŠããå¯èœæ§ã¯ååã«ãããŸããç§ãã¡ã¯ããŸãèªåãã¡ã®ã¿ã¹ã¯ããå§ããŸãããã€ãŸããã¯ã©ã€ã¢ã³ãã®å žåçãªããŒã¿ãååŸããããã«å¯ŸããŠå žåçãªã·ããªãªãå®è¡ããããã©ãŒãã³ã¹ãæ¶è²»ãããã¡ã¢ãªã®éãªã©ã調ã¹ãç§ãã¡ãšã¯ã©ã€ã¢ã³ãããã®çµæã«æºè¶³ããŠãããã©ãããåæããŸããããããŠåœŒãã¯ããã«å¿ããŠè¡åããã
ç§ãã¡ãæã£ãŠãããã®
åœåã1C:Enterprise 8 ãã©ãããã©ãŒã ã®ã³ãŒã㯠Microsoft Visual Studio ã§äœæããŸããããããžã§ã¯ã㯠2000 幎代åé ã«å§ãŸããããŒãžã§ã³ã¯ 1 ã€ãããããŸããã§ããã Windowsåœç¶ãªããããã®åŸã³ãŒãã¯æ¥éã«é²åããå€ãã®ã¡ã«ããºã ãå®å šã«æžãçŽãããŸãããããããã³ãŒãã¯1998å¹Žã®æšæºã«æºæ ããŠèšè¿°ãããŠãããäŸãã°ãã³ã³ãã€ã«ã確å®ã«æåãããããã«ã以äžã®ããã«å³å±±æ¬åŒ§ãã¹ããŒã¹ã§åºåã£ãŠããŸããã
vector<vector<int> > IntV;2006幎ããã©ãããã©ãŒã ããŒãžã§ã³8.1ã®ãªãªãŒã¹ã«äŒŽãããµããŒããéå§ããŸããã Linux ãµãŒãããŒãã£è£œã®æšæºã©ã€ãã©ãªã«åãæ¿ãã åãæ¿ãã®çç±ã®äžã€ã¯ãå¹ ã®åºãæååãæ±ãããã§ãããç§ãã¡ã®ã³ãŒãã§ã¯ãwchar_t åã«åºã¥ãã std::wstring ãå šäœãéããŠäœ¿çšããŠããŸãããã®ãµã€ãºã¯ Windows 2ãã€ãããã㊠Linux ããã©ã«ã㯠4 ãã€ãã§ããããã«ãããã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®ãã€ã㪠ãããã³ã«ãããŸããŸãªæ°žç¶ããŒã¿ã«äºææ§ã®åé¡ãçããŸãããgcc ãªãã·ã§ã³ã䜿çšãããšãã³ã³ãã€ã«æã« wchar_t ã®ãµã€ãºã 2 ãã€ãã«åŒ·å¶ã§ããŸãããã³ã³ãã€ã©ã®æšæºã©ã€ãã©ãªã¯ glibc ã䜿çšããããã䜿çšã§ããªããªããŸããglibc 㯠4 ãã€ãã® wchar_t çšã«ã³ã³ãã€ã«ãããŠããããã§ãããã®ä»ã®çç±ãšããŠã¯ãæšæºã¯ã©ã¹ã®ããé«å質ãªå®è£ ãããã·ã¥ ããŒãã«ã®ãµããŒããããã«ã¯ã³ã³ããç§»åã»ãã³ãã£ã¯ã¹ã®ãšãã¥ã¬ãŒã·ã§ã³ïŒããã¯ç©æ¥µçã«äœ¿çšããŸããïŒãªã©ããããŸããããããŠæåŸã«ãæååã®ããã©ãŒãã³ã¹ãéèŠãªèŠçŽ ã§ãããåœç€Ÿã§ã¯ããœãããŠã§ã¢ã§æååæäœãå€çšããŠãããããã¯åœç€Ÿã«ãšã£ãŠéåžžã«éèŠã§ãããããç¬èªã®æååã¯ã©ã¹ãçšæããŸããã
ç§ãã¡ã®æååã¯ã2000 幎代åé ã«ææ¡ãããæååæé©åã®ã¢ã€ãã¢ã«åºã¥ããŠããŸãã ããã®åŸãã¢ã¬ã¯ãµã³ãã«ã¹ã¯ãFacebookã§åããŠãããšãã圌ã¯åæ§ã®åçã§åäœããæååãFacebookãšã³ãžã³ã§äœ¿çšãããŠããããšã瀺åããŸããïŒã©ã€ãã©ãªãåç §ïŒã ).
åœç€Ÿã®è£œåã©ã€ã³ã§ã¯ã䞻㫠2 ã€ã®æé©åãã¯ãããžãæ¡çšããŠããŸãã
- çãå€ã®å Žåãæååãªããžã§ã¯ãèªäœã®å éšãããã¡ã䜿çšãããŸã (远å ã®ã¡ã¢ãªå²ãåœãŠã¯å¿ èŠãããŸãã)ã
- ãã®ä»ãã¹ãŠã«ã¯ãã¡ã«ãã¯ã¹ã䜿çšãããŸãã ãæååå€ã¯ 1 ãæã«ä¿åãããå²ãåœãŠ/倿޿ã«åç §ã«ãŠã³ã¿ãŒã䜿çšãããŸãã
ãã©ãããã©ãŒã ã®ã³ã³ãã€ã«ãé«éåããããã«ãSTLPort å®è£ ããã¹ããªãŒã å®è£ (䜿çšããªãã£ã) ãåé€ããŸãããããã«ãããã³ã³ãã€ã«é床ãçŽ 20% åäžããŸããããã®åŸãå¶éãããæ¹æ³ã§äœ¿çšããªããã°ãªããŸããã§ããã ã Boost ã¯ãç¹ã«ãµãŒãã¹ API (ãã°èšé²ãªã©) ã§ã¹ããªãŒã ãå€çšãããããã¹ããªãŒã ã䜿çšããªãããã«å€æŽããå¿ èŠããããŸããããã®çµæãBoost ã®æ°ããããŒãžã§ã³ãžã®ã¢ããã°ã¬ãŒããå°é£ã«ãªããŸããã
第äžã®æ¹æ³
C++14 æšæºã«ç§»è¡ããéãæ¬¡ã®ãªãã·ã§ã³ãæ€èšããŸããã
- 倿Žããã STLPort ã C++14 æšæºã«ã¢ããã°ã¬ãŒãããŸãã STLPort ã®ãµããŒã㯠2010 幎ã«å»æ¢ãããããããã®ãªãã·ã§ã³ã¯éåžžã«å°é£ã§ããããã¹ãŠã®ã³ãŒããèªåã§åæ§ç¯ããå¿ èŠããã£ãã§ãããã
- C++14 ãšäºææ§ã®ããå¥ã® STL å®è£ ã«åãæ¿ããŸãããã®å®è£ ã以äžã®æ¡ä»¶ãæºãããŠããããšã匷ãæãŸããŸãã Windows О Linux.
- å OS çšã«ã³ã³ãã€ã«ããå Žåã¯ã察å¿ããã³ã³ãã€ã©ã«çµã¿èŸŒãŸããŠããã©ã€ãã©ãªã䜿çšããŸãã
æåã®éžæè¢ã¯ãäœæ¥éãå€ãããããããã«åŽäžãããŸããã
ç§ãã¡ã¯ãã°ããã®éã2 çªç®ã®éžæè¢ã«ã€ããŠèããŸãããåè£ãšããŠæ€èšããã ããããåœæåœŒã¯ Windowslibc++ãç§»æ€ããã«ã¯ Windowsããããã°ãå€ãã®äœæ¥ãè¡ãå¿ èŠãåºãŠããŸããããšãã°ãlibc++ ã䜿çšããŠããã¹ã¬ãããã¹ã¬ããåæãã¢ãããã¯æ§ã«é¢é£ãããã¹ãŠãèªåãã¡ã§èšè¿°ããå¿ èŠããããŸãã .
ãããŠç§ãã¡ã¯3çªç®ã®éãéžã³ãŸããã
ÐеÑÐµÑ ÐŸÐŽ
ãã®ãããSTLPort ã®äœ¿çšã察å¿ããã³ã³ãã€ã© (Visual Studio 2015 ãªã©) ã®ã©ã€ãã©ãªã«çœ®ãæããå¿ èŠããããŸããã Windowsãgcc 7 çš Linuxclang 8 çš macOS).
幞ããªããšã«ãç§ãã¡ã®ã³ãŒãã¯ã»ãšãã©ã¬ã€ãã©ã€ã³ã«åŸã£ãŠæžãããŠãããå·§åŠãªããªãã¯ã¯äœ¿çšããŠããªãã£ããããæ°ããã©ã€ãã©ãªãžã®ç§»è¡ã¯æ¯èŒçã¹ã ãŒãºã«é²ã¿ãŸããããœãŒã¹ãã¡ã€ã«å ã®åãã¯ã©ã¹ãåå空éãã€ã³ã¯ã«ãŒãã®ååã眮ãæããã¹ã¯ãªããã䜿çšããŸãããç§»è¡ã¯14,000åã®ãœãŒã¹ãã¡ã€ã«ã®ãã¡10,000åã«åœ±é¿ãäžããŸãããwchar_tã¯char16_tã«çœ®ãæããããŸãããchar16_tã¯ãã¹ãŠã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§2ãã€ãããå æãããã³ãŒãã®äºææ§ã«åœ±é¿ãäžããªããããwchar_tã®äœ¿çšãäžæ¢ããããšã«ããŸããã Windows О Linux.
å°ããªåéºãããã€ããããŸãããããšãã°ãSTLPort ã§ã¯ãå埩åãèŠçŽ ãžã®ãã€ã³ã¿ãŒã«æé»çã«ãã£ã¹ãããããšãã§ããã³ãŒãå ã®ããã€ãã®å Žæã§ããã䜿çšãããŸãããæ°ããã©ã€ãã©ãªã§ã¯ãããè¡ãããšãã§ããªããªãããããã®å Žæãæåã§åæããŠæžãçŽãå¿ èŠããããŸããã
ãããã£ãŠãã³ãŒãã®ç§»è¡ã¯å®äºããã³ãŒãã¯ãã¹ãŠã® OS çšã«ã³ã³ãã€ã«ãããŸãããã¹ãã®æéã§ãã
ç§»è¡åŸã®ãã¹ãã§ã¯ãå€ãããŒãžã§ã³ã®ã³ãŒããšæ¯èŒããŠãããã©ãŒãã³ã¹ã®äœäž (å Žæã«ãã£ãŠã¯æå€§ 20 ïœ 30%) ãšã¡ã¢ãªæ¶è²»ã®å¢å (æå€§ 10 ïœ 15%) ãèŠãããŸãããããã¯ç¹ã«ãæšæºæååã®æé©ã§ãªãæäœãåå ã§ããããã®ãããç§ãã¡ã¯åã³ããããã«ä¿®æ£ããç¬èªã®ã©ã€ã³ã䜿çšããå¿ èŠããããŸããã
çµã¿èŸŒã¿ã©ã€ãã©ãªå ã®ã³ã³ããã®å®è£ ã®è峿·±ãæ©èœãæããã«ãªããŸãããçµã¿èŸŒã¿ã©ã€ãã©ãªã®ç©ºã® (èŠçŽ ãªãã®) std::map ãš std::set ãã¡ã¢ãªãå²ãåœãŠãŸãããŸããå®è£ æ©èœã«ãããã³ãŒãã®ããã€ãã®å Žæã§ã¯ããã®ã¿ã€ãã®ç©ºã®ã³ã³ãããŒãããªãå€ãäœæãããŸããæšæºã®ã¡ã¢ãª ã³ã³ãããŒã¯ã1 ã€ã®ã«ãŒãèŠçŽ ã«å¯ŸããŠå°ãå²ãåœãŠãŸãããç§ãã¡ã«ãšã£ãŠã¯ãããéèŠã§ããããšã倿ããŸãããå€ãã®ã·ããªãªã§ãããã©ãŒãã³ã¹ãèããäœäžããã¡ã¢ãªæ¶è²»éãå¢å ããŸãã (STLPort ãšæ¯èŒããŠ)ãããã§ãã³ãŒãå ã®çµã¿èŸŒã¿ã©ã€ãã©ãªã®ããã 2 çš®é¡ã®ã³ã³ãããŒãããã®æ©èœãæããªã Boost ã®å®è£ ã«çœ®ãæããé床äœäžãšã¡ã¢ãªæ¶è²»éã®å¢å ã®åé¡ã解決ããŸããã
å€§èŠæš¡ãããžã§ã¯ãã§å€§èŠæš¡ãªå€æŽãè¡ã£ãåŸã«ããããããšã§ããããœãŒã¹ã³ãŒãã®æåã®ã€ãã¬ãŒã·ã§ã³ã«ã¯åé¡ããªãã£ãããã§ã¯ãªããç¹ã«ãããã°ã€ãã¬ãŒã¿ã®ãµããŒãã«åé¡ããããŸããã Windows-å®è£ ãç§ãã¡ã¯æ®µéçã«é²ãã2017幎æ¥ïŒ1C:Enterpriseã®ããŒãžã§ã³8.3.11ïŒãŸã§ã«ç§»è¡ãå®äºããŸããã
çµæ
C++14 æšæºãžã®åãæ¿ãã«ã¯çŽ 6 ãæããããŸãããã»ãšãã©ã®å ŽåãXNUMX 人㮠(ãã ãéåžžã«åªç§ãª) éçºè ãããââãžã§ã¯ãã«åãçµã¿ãæçµæ®µéã§ãUIããµãŒã㌠ã¯ã©ã¹ã¿ãŒãéçºããã³ç®¡çããŒã«ãªã©ã®ç¹å®ã®é åãæ åœããããŒã ã®ä»£è¡šè ãåå ããŸããã
ãã®ç§»è¡ã«ãããææ°ããŒãžã§ã³ã®æšæºãžã®ç§»è¡äœæ¥ãå€§å¹ ã«ç°¡çŽ åãããŸããããããã£ãŠãããŒãžã§ã³1C:Enterprise 8.3.14ïŒéçºäžãæ¥å¹Žåãã«ãªãªãŒã¹äºå®ïŒã¯ãã§ã«æšæºã«ç¿»èš³ãããŠããŸãã .
ç§»è¡åŸãéçºè ã«ã¯ããå€ãã®éžæè¢ãäžããããŸãã以åã¯ãç¬èªã«ä¿®æ£ãã STL ããŒãžã§ã³ãš 1 ã€ã®åå空é std ããããŸããããçŸåšã¯åå空é std ã«çµã¿èŸŒã¿ã³ã³ãã€ã© ã©ã€ãã©ãªã®æšæºã¯ã©ã¹ããããåå空é stdx ã«ã¿ã¹ã¯çšã«æé©åãããæååãšã³ã³ãããŒããããboost ã«ã¯ææ°ããŒãžã§ã³ã® boost ããããŸãããããŠéçºè ã¯ãåé¡ã®è§£æ±ºã«æé©ãªã¯ã©ã¹ã䜿çšããŸãã
ç§»åã³ã³ã¹ãã©ã¯ã¿ã®ãã€ãã£ãå®è£ ã¯éçºã«ã圹ç«ã¡ãŸãïŒ) ãããã€ãã®ã¯ã©ã¹ã«æäŸããŸããã¯ã©ã¹ã«ç§»åã³ã³ã¹ãã©ã¯ã¿ãŒãããããã®ã¯ã©ã¹ãã³ã³ãããŒå ã«é 眮ãããŠããå ŽåãSTL ã¯ã³ã³ãããŒå ã®èŠçŽ ã®ã³ããŒãæé©åããŸã (ããšãã°ãã³ã³ãããŒãæ¡åŒµããã容éã倿Žããå¿ èŠããããã¡ã¢ãªãåå²ãåœãŠããå¿ èŠãããå Žåãªã©)ã
è»èã®äžãé£ã¶
ãããããç§»äœã®æãäžå¿«ãªïŒãããé倧ã§ã¯ãªãïŒçµæã¯ãç§ãã¡ãçŽé¢ããéã®å¢å ã§ããã ããã¹ãŠã®äžéãã¡ã€ã«ãå«ãå®å
šãªãã«ãçµæã 60ïœ70 GB ãå ããããã«ãªããŸããããã®åäœã¯ãçæããããµãŒãã¹ ãã¡ã€ã«ã®éã«å¯ŸããéèŠæ§ãèããŠããææ°ã®æšæºã©ã€ãã©ãªã®ç¹æ®æ§ã«é¢é£ããŠããŸããããã¯ã³ã³ãã€ã«ãããã¢ããªã±ãŒã·ã§ã³ã®åäœã«ã¯åœ±é¿ããŸããããéçºã«ãããŠå€ãã®äžäŸ¿ãåŒãèµ·ãããç¹ã«ã³ã³ãã€ã«æéãé·ããªããŸãããã«ã ãµãŒããŒãšéçºè
ãã·ã³äžã®ç©ºããã£ã¹ã¯é åã«å¯ŸããèŠä»¶ãå¢å ããŠããŸããåœç€Ÿã®éçºè
ã¯ããã©ãããã©ãŒã ã®è€æ°ã®ããŒãžã§ã³ã䞊è¡ããŠäœæ¥ããŠãããæ°çŸã®ã¬ãã€ãã®äžéãã¡ã€ã«ã«ãã£ãŠäœæ¥ã«æ¯éãçããããšããããŸãããã®åé¡ã¯äžå¿«ã§ã¯ãããã®ã®ãé倧ãªãã®ã§ã¯ãªããããåœé¢ã¯è§£æ±ºãå»¶æããŸãããã®è§£æ±ºçã®äžã€ãšããŠãç§ãã¡ã¯ãã¯ãããžãŒãæ€èšããŠããŸã (ç¹ã«ãGoogle 㯠Chrome ãã©ãŠã¶ã®éçºæã«ããã䜿çšããŸã)ã
åºæïŒ habr.com
