ืื™ืš ืชืจื’ืžื ื• 10 ืžื™ืœื™ื•ืŸ ืฉื•ืจื•ืช ืฉืœ ืงื•ื“ C++ ืœืชืงืŸ C++14 (ื•ืื– ืœ-C++17)

ืœืคื ื™ ื–ืžืŸ ืžื” (ื‘ืกืชื™ื• 2016), ื‘ืžื”ืœืš ืคื™ืชื•ื— ื”ื’ืจืกื” ื”ื‘ืื” ืฉืœ ืคืœื˜ืคื•ืจืžืช ื”ื˜ื›ื ื•ืœื•ื’ื™ื” 1C:Enterprise, ืขืœืชื” ื‘ืชื•ืš ืฆื•ื•ืช ื”ืคื™ืชื•ื— ื”ืฉืืœื” ืœื’ื‘ื™ ืชืžื™ื›ื” ื‘ืชืงืŸ ื”ื—ื“ืฉ C ++ 14 ื‘ืงื•ื“ ืฉืœื ื•. ื”ืžืขื‘ืจ ืœืชืงืŸ ื—ื“ืฉ, ื›ืคื™ ืฉื”ื ื—ื ื•, ื™ืืคืฉืจ ืœื ื• ืœื›ืชื•ื‘ ื“ื‘ืจื™ื ืจื‘ื™ื ื‘ืฆื•ืจื” ืืœื’ื ื˜ื™ืช, ืคืฉื•ื˜ื” ื•ืืžื™ื ื” ื™ื•ืชืจ, ื•ื™ืคืฉื˜ ืืช ื”ืชืžื™ื›ื” ื•ื”ืชื—ื–ื•ืงื” ืฉืœ ื”ืงื•ื“. ื•ื ืจืื” ืฉืื™ืŸ ืฉื•ื ื“ื‘ืจ ื™ื•ืฆื ื“ื•ืคืŸ ื‘ืชืจื’ื•ื, ืืœืžืœื ืงื ื” ื”ืžื™ื“ื” ืฉืœ ื‘ืกื™ืก ื”ืงื•ื“ ื•ื”ืชื›ื•ื ื•ืช ื”ืกืคืฆื™ืคื™ื•ืช ืฉืœ ื”ืงื•ื“ ืฉืœื ื•.

ืœืžื™ ืฉืœื ื™ื•ื“ืข, 1C:Enterprise ื”ื™ื ืกื‘ื™ื‘ื” ืœืคื™ืชื•ื— ืžื”ื™ืจ ืฉืœ ื™ื™ืฉื•ืžื™ื ืขืกืงื™ื™ื ื—ื•ืฆื™ ืคืœื˜ืคื•ืจืžื•ืช ื•ื–ืžืŸ ืจื™ืฆื” ืœื‘ื™ืฆื•ืขื ืขืœ ืžืขืจื›ืช ื”ืคืขืœื” ื•-DBMS ืฉื•ื ื™ื. ื‘ืื•ืคืŸ ื›ืœืœื™, ื”ืžื•ืฆืจ ืžื›ื™ืœ:

ืื ื• ืžื ืกื™ื ืœื›ืชื•ื‘ ืืช ืื•ืชื• ืงื•ื“ ืขื‘ื•ืจ ืžืขืจื›ื•ืช ื”ืคืขืœื” ืฉื•ื ื•ืช ื›ื›ืœ ืฉื ื™ืชืŸ - ื‘ืกื™ืก ืงื•ื“ ื”ืฉืจืช ื ืคื•ืฅ ื‘-99%, ื‘ืกื™ืก ืงื•ื“ ื”ืœืงื•ื— ื”ื•ื ื›-95%. ืคืœื˜ืคื•ืจืžืช ื”ื˜ื›ื ื•ืœื•ื’ื™ื” 1C:Enterprise ื›ืชื•ื‘ื” ื‘ืขื™ืงืจ ื‘-C++ ื•ืžืืคื™ื™ื ื™ ืงื•ื“ ืžืฉื•ืขืจื™ื ื ื™ืชื ื™ื ืœื”ืœืŸ:

  • 10 ืžื™ืœื™ื•ืŸ ืฉื•ืจื•ืช ืฉืœ ืงื•ื“ C++,
  • 14 ืืœืฃ ืงื‘ืฆื™ื,
  • 60 ืืœืฃ ื›ื™ืชื•ืช,
  • ื—ืฆื™ ืžื™ืœื™ื•ืŸ ืฉื™ื˜ื•ืช.

ื•ืืช ื›ืœ ื”ื“ื‘ืจื™ื ื”ืืœื” ื”ื™ื” ืฆืจื™ืš ืœืชืจื’ื ืœ-C++14. ื”ื™ื•ื ื ืกืคืจ ืœื›ื ืื™ืš ืขืฉื™ื ื• ื–ืืช ื•ื‘ืžื” ื ืชืงืœื ื• ื‘ืชื”ืœื™ืš.

ืื™ืš ืชืจื’ืžื ื• 10 ืžื™ืœื™ื•ืŸ ืฉื•ืจื•ืช ืฉืœ ืงื•ื“ C++ ืœืชืงืŸ C++14 (ื•ืื– ืœ-C++17)

ื›ืชื‘ ื•ื™ืชื•ืจ

ื›ืœ ืžื” ืฉื ื›ืชื‘ ืœืžื˜ื” ืขืœ ืขื‘ื•ื“ื” ืื™ื˜ื™ืช/ืžื”ื™ืจื”, ืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ (ืœื) ื’ื“ื•ืœื” ืขืœ ื™ื“ื™ ื”ื˜ืžืขื•ืช ืฉืœ ืžื—ืœืงื•ืช ืกื˜ื ื“ืจื˜ื™ื•ืช ื‘ืกืคืจื™ื•ืช ืฉื•ื ื•ืช ืื•ืžืจ ื“ื‘ืจ ืื—ื“: ื–ื” ื ื›ื•ืŸ ืขื‘ื•ืจื ื•. ื‘ื”ื—ืœื˜ ื™ื™ืชื›ืŸ ืฉื”ื˜ืžืขื•ืช ืกื˜ื ื“ืจื˜ื™ื•ืช ื™ืชืื™ืžื• ื‘ืฆื•ืจื” ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ืœืžืฉื™ืžื•ืช ืฉืœืš. ื”ืชื—ืœื ื• ืžืžืฉื™ืžื•ืช ืฉืœื ื•: ืœืงื—ื ื• ื ืชื•ื ื™ื ืื•ืคื™ื™ื ื™ื™ื ืœืœืงื•ื—ื•ืช ืฉืœื ื•, ื”ืจืฆื ื• ืขืœื™ื”ื ืชืจื—ื™ืฉื™ื ืื•ืคื™ื™ื ื™ื™ื, ื‘ื“ืงื ื• ื‘ื™ืฆื•ืขื™ื, ื›ืžื•ืช ื”ื–ื™ื›ืจื•ืŸ ื”ื ืฆืจื›ืช ื•ื›ื•', ื•ื ื™ืชื—ื ื• ืื ืื ื—ื ื• ื•ื”ืœืงื•ื—ื•ืช ืฉืœื ื• ืžืจื•ืฆื™ื ืžืชื•ืฆืื•ืช ื›ืืœื” ืื• ืœื. . ื•ื”ื ืคืขืœื• ื‘ื”ืชืื.

ืžื” ืฉื”ื™ื” ืœื ื•

ื‘ืชื—ื™ืœื”, ื›ืชื‘ื ื• ืืช ื”ืงื•ื“ ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžืช 1C:Enterprise 8 ื‘ืืžืฆืขื•ืช Microsoft Visual Studio. ื”ืคืจื•ื™ืงื˜ ื”ืชื—ื™ืœ ื‘ืชื—ื™ืœืช ืฉื ื•ืช ื”-2000 ื•ื”ื™ื™ืชื” ืœื ื• ื’ืจืกื” ืœ-Windows ื‘ืœื‘ื“. ื‘ืื•ืคืŸ ื˜ื‘ืขื™, ืžืื– ื”ืงื•ื“ ืคื•ืชื— ื‘ืื•ืคืŸ ืคืขื™ืœ, ืžื ื’ื ื•ื ื™ื ืจื‘ื™ื ืฉื•ื›ืชื‘ื• ืœื—ืœื•ื˜ื™ืŸ. ืื‘ืœ ื”ืงื•ื“ ื ื›ืชื‘ ืขืœ ืคื™ ืชืงืŸ 1998, ื•ืœื“ื•ื’ืžื”, ืกื•ื’ืจื™ื™ื ื™ืฉืจื™ื ืฉืœื ื• ื”ื•ืคืจื“ื• ื‘ืจื•ื•ื—ื™ื ื›ื“ื™ ืฉื”ืงื•ืžืคื™ืœืฆื™ื” ืชืฆืœื™ื—, ื›ืš:

vector<vector<int> > IntV;

ื‘ืฉื ืช 2006, ืขื ืฉื—ืจื•ืจื• ืฉืœ ืคืœื˜ืคื•ืจืžื” ื’ืจืกื” 8.1, ื”ืชื—ืœื ื• ืœืชืžื•ืš ื‘ืœื™ื ื•ืงืก ื•ืขื‘ืจื ื• ืœืกืคืจื™ื™ื” ืกื˜ื ื“ืจื˜ื™ืช ืฉืœ ืฆื“ ืฉืœื™ืฉื™ STLPort. ืื—ืช ื”ืกื™ื‘ื•ืช ืœืžืขื‘ืจ ื”ื™ื™ืชื” ืขื‘ื•ื“ื” ืขื ืงื•ื•ื™ื ืจื—ื‘ื™ื. ื‘ืงื•ื“ ืฉืœื ื•, ืื ื• ืžืฉืชืžืฉื™ื ื‘-std::wstring, ื”ืžื‘ื•ืกืก ืขืœ ืกื•ื’ wchar_t, ืœืื•ืจืš ื›ืœ ื”ื“ืจืš. ื’ื•ื“ืœื• ื‘-Windows ื”ื•ื 2 ื‘ืชื™ื, ื•ื‘ืœื™ื ื•ืงืก ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื™ื 4 ื‘ืชื™ื. ื–ื” ื”ื•ื‘ื™ืœ ืœืื™ ืชืื™ืžื•ืช ืฉืœ ื”ืคืจื•ื˜ื•ืงื•ืœื™ื ื”ื‘ื™ื ืืจื™ื™ื ืฉืœื ื• ื‘ื™ืŸ ื”ืœืงื•ื— ืœืฉืจืช, ื›ืžื• ื’ื ืœื ืชื•ื ื™ื ืงื‘ื•ืขื™ื ืฉื•ื ื™ื. ื‘ืืžืฆืขื•ืช ืืคืฉืจื•ื™ื•ืช gcc, ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ ืฉื”ื’ื•ื“ืœ ืฉืœ wchar_t ื‘ืžื”ืœืš ื”ื”ื™ื“ื•ืจ ื”ื•ื ื’ื 2 ื‘ืชื™ื, ืื‘ืœ ืื– ืืชื” ื™ื›ื•ืœ ืœืฉื›ื•ื— ืžื”ืฉื™ืžื•ืฉ ื‘ืกืคืจื™ื™ื” ื”ืกื˜ื ื“ืจื˜ื™ืช ืžื”ืžื”ื“ืจ, ืžื›ื™ื•ื•ืŸ ื”ื•ื ืžืฉืชืžืฉ ื‘-glibc, ืืฉืจ ื‘ืชื•ืจื• ืžื•ืจื›ื‘ ืขื‘ื•ืจ wchar_t ืฉืœ 4 ื‘ืชื™ื. ืกื™ื‘ื•ืช ื ื•ืกืคื•ืช ื”ื™ื• ื”ื˜ืžืขื” ื˜ื•ื‘ื” ื™ื•ืชืจ ืฉืœ ืžื—ืœืงื•ืช ืกื˜ื ื“ืจื˜ื™ื•ืช, ืชืžื™ื›ื” ื‘ื˜ื‘ืœืื•ืช ื’ื™ื‘ื•ื‘ ื•ืืคื™ืœื• ืืžื•ืœืฆื™ื” ืฉืœ ื”ืกืžื ื˜ื™ืงื” ืฉืœ ืžืขื‘ืจ ื‘ืชื•ืš ืžื›ื•ืœื•ืช, ืฉื‘ื” ื”ืฉืชืžืฉื ื• ื‘ืื•ืคืŸ ืคืขื™ืœ. ื•ืขื•ื“ ืกื™ื‘ื” ืื—ืช, ื›ืžื• ืฉืื•ืžืจื™ื ืื—ืจื•ื ื” ื—ื‘ื™ื‘ื”, ื”ื™ื™ืชื” ื‘ื™ืฆื•ืขื™ ืžื™ืชืจ. ื”ื™ื” ืœื ื• ืฉื™ืขื•ืจ ืžืฉืœื ื• ืœืžื™ืชืจื™ื, ื›ื™... ื‘ืฉืœ ื”ืžืืคื™ื™ื ื™ื ื”ืกืคืฆื™ืคื™ื™ื ืฉืœ ื”ืชื•ื›ื ื” ืฉืœื ื•, ื ืขืฉื” ืฉื™ืžื•ืฉ ื ืจื—ื‘ ืžืื•ื“ ื‘ืคืขื•ืœื•ืช ืžื—ืจื•ื–ื•ืช ื•ืขื‘ื•ืจื ื• ื–ื” ืงืจื™ื˜ื™.

ื”ืžื—ืจื•ื–ืช ืฉืœื ื• ืžื‘ื•ืกืกืช ืขืœ ืจืขื™ื•ื ื•ืช ืœืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืžื—ืจื•ื–ื•ืช ืฉื”ื•ื‘ืขื• ืขื•ื“ ื‘ืชื—ื™ืœืช ืฉื ื•ืช ื”ืืœืคื™ื™ื ืื ื“ืจื™ื™ ืืœื›ืกื ื“ืจืกืงื•. ืžืื•ื—ืจ ื™ื•ืชืจ, ื›ืฉืืœื›ืกื ื“ืจืกืงื• ืขื‘ื“ ื‘ืคื™ื™ืกื‘ื•ืง, ืœืคื™ ื”ืฆืขืชื•, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืงื• ื‘ืžื ื•ืข ื”ืคื™ื™ืกื‘ื•ืง ืฉืขื‘ื“ ืขืœ ืขืงืจื•ื ื•ืช ื“ื•ืžื™ื (ืจืื” ืกืคืจื™ื™ื” ืกื›ืœื•ืช).

ื”ืงื• ืฉืœื ื• ื”ืฉืชืžืฉ ื‘ืฉืชื™ ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืขื™ืงืจื™ื•ืช:

  1. ืขื‘ื•ืจ ืขืจื›ื™ื ืงืฆืจื™ื, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžืื’ืจ ืคื ื™ืžื™ ื‘ืื•ื‘ื™ื™ืงื˜ ื”ืžื—ืจื•ื–ืช ืขืฆืžื• (ืœื ื“ื•ืจืฉ ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ ื ื•ืกืคืช).
  2. ืขื‘ื•ืจ ื›ืœ ื”ืฉืืจ ืžืฉืชืžืฉื™ื ื‘ืžื›ื ื™ืงื” ื”ืขืชืง ื‘ื›ืชื™ื‘ื”. ืขืจืš ื”ืžื—ืจื•ื–ืช ืžืื•ื—ืกืŸ ื‘ืžืงื•ื ืื—ื“, ื•ืžื•ื ื” ื”ืคื ื™ื” ืžืฉืžืฉ ื‘ืžื”ืœืš ื”ืงืฆืื”/ืฉื™ื ื•ื™.

ื›ื“ื™ ืœื”ืื™ืฅ ืืช ื”ืงื•ืžืคื™ืœืฆื™ื” ืฉืœ ื”ืคืœื˜ืคื•ืจืžื”, ื”ืกืจื ื• ืืช ืžื™ืžื•ืฉ ื”ื–ืจื ืžื’ืจืกื” STLPort ืฉืœื ื• (ืฉืœื ื”ืฉืชืžืฉื ื•), ื–ื” ื ืชืŸ ืœื ื• ื”ื™ื“ื•ืจ ืžื”ื™ืจ ื™ื•ืชืจ ื‘ื›-20%. ืœืื—ืจ ืžื›ืŸ ื ืืœืฆื ื• ืœืขืฉื•ืช ืฉื™ืžื•ืฉ ืžื•ื’ื‘ืœ ืœึฐื”ึทื’ื‘ึผึดื™ืจ. Boost ืขื•ืฉื” ืฉื™ืžื•ืฉ ืจื‘ ื‘ื–ืจื, ื‘ืžื™ื•ื—ื“ ื‘ืžืžืฉืงื™ ื”-API ืฉืœ ื”ืฉื™ืจื•ืชื™ื ืฉืœื• (ืœื“ื•ื’ืžื”, ืœืจื™ืฉื•ื), ืื– ื ืืœืฆื ื• ืœืฉื ื•ืช ืื•ืชื• ื›ื“ื™ ืœื”ืกื™ืจ ืืช ื”ืฉื™ืžื•ืฉ ื‘ื–ืจื. ื–ื”, ื‘ืชื•ืจื•, ื”ืงืฉื” ืขืœื™ื ื• ืœืขื‘ื•ืจ ืœื’ืจืกืื•ืช ื—ื“ืฉื•ืช ืฉืœ Boost.

ื“ืจืš ืฉืœื™ืฉื™ืช

ื‘ืขืช ื”ืžืขื‘ืจ ืœืชืงืŸ C++14, ืฉืงืœื ื• ืืช ื”ืืคืฉืจื•ื™ื•ืช ื”ื‘ืื•ืช:

  1. ืฉื“ืจื’ ืืช STLPort ืฉืฉื™ื ื™ื ื• ืœืชืงืŸ C++14. ื”ืืคืฉืจื•ืช ืงืฉื” ืžืื•ื“, ื›ื™... ื”ืชืžื™ื›ื” ื‘- STLPort ื”ื•ืคืกืงื” ื‘-2010, ื•ื ืฆื˜ืจืš ืœื‘ื ื•ืช ืืช ื›ืœ ื”ืงื•ื“ ืฉืœื• ื‘ืขืฆืžื ื•.
  2. ืžืขื‘ืจ ืœืžื™ืžื•ืฉ STL ืื—ืจ ื”ืชื•ืื ืœ-C++14. ืจืฆื•ื™ ืžืื•ื“ ืฉื”ื™ื™ืฉื•ื ื”ื–ื” ื™ื”ื™ื” ืขื‘ื•ืจ Windows ื•-Linux.
  3. ื‘ืขืช ื”ื™ื“ื•ืจ ืขื‘ื•ืจ ื›ืœ ืžืขืจื›ืช ื”ืคืขืœื”, ื”ืฉืชืžืฉ ื‘ืกืคืจื™ื™ื” ื”ืžื•ื‘ื ื™ืช ื‘ืžื”ื“ืจ ื”ืžืชืื™ื.

ื”ืืคืฉืจื•ืช ื”ืจืืฉื•ื ื” ื ื“ื—ืชื” ืขืœ ื”ืกืฃ ืขืงื‘ ืขื‘ื•ื“ื” ืจื‘ื” ืžื“ื™.

ื—ืฉื‘ื ื• ืขืœ ื”ืืคืฉืจื•ืช ื”ืฉื ื™ื™ื” ื–ืžืŸ ืžื”; ื ื—ืฉื‘ ื›ืžื•ืขืžื“ libc ++, ืื‘ืœ ื‘ืื•ืชื• ื–ืžืŸ ื–ื” ืœื ืขื‘ื“ ืชื—ืช Windows. ื›ื“ื™ ืœื”ืขื‘ื™ืจ ืืช libc++ ืœ-Windows, ืชืฆื˜ืจื›ื• ืœืขืฉื•ืช ืขื‘ื•ื“ื” ืจื‘ื” - ืœืžืฉืœ, ืœื›ืชื•ื‘ ื‘ืขืฆืžื›ื ื›ืœ ืžื” ืฉืงืฉื•ืจ ืœืฉืจืฉื•ืจื™ื, ืกื ื›ืจื•ืŸ ืฉืจืฉื•ืจ ื•ืื˜ื•ืžื™ื•ืช, ืžื›ื™ื•ื•ืŸ ืฉ-libc++ ื‘ืฉื™ืžื•ืฉ ื‘ืื–ื•ืจื™ื ืืœื” POSIX API.

ื•ื‘ื—ืจื ื• ื‘ื“ืจืš ื”ืฉืœื™ืฉื™ืช.

ืžืขื‘ืจ

ืื–, ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืœื”ื—ืœื™ืฃ ืืช ื”ืฉื™ืžื•ืฉ ื‘-STLPort ื‘ืกืคืจื™ื•ืช ืฉืœ ื”ืžื”ื“ืจื™ื ื”ืžืชืื™ืžื™ื (Visual Studio 2015 ืขื‘ื•ืจ Windows, gcc 7 ืขื‘ื•ืจ Linux, clang 8 ืขื‘ื•ืจ macOS).

ืœืžืจื‘ื” ื”ืžื–ืœ, ื”ืงื•ื“ ืฉืœื ื• ื ื›ืชื‘ ื‘ืขื™ืงืจ ืœืคื™ ื”ื ื—ื™ื•ืช ื•ืœื ื”ืฉืชืžืฉ ื‘ื›ืœ ืžื™ื ื™ ื˜ืจื™ืงื™ื ื—ื›ืžื™ื, ื›ืš ืฉื”ื”ื’ื™ืจื” ืœืกืคืจื™ื•ืช ื—ื“ืฉื•ืช ื”ืชื ื”ืœื” ื‘ืฆื•ืจื” ื—ืœืงื” ื™ื—ืกื™ืช, ื‘ืขื–ืจืช ืกืงืจื™ืคื˜ื™ื ืฉื”ื—ืœื™ืคื• ืืช ืฉืžื•ืช ื”ื˜ื™ืคื•ืกื™ื, ื”ืžื—ืœืงื•ืช, ืžืจื—ื‘ื™ ื”ืฉืžื•ืช ื•ื›ื•ืœืœื™ื ื‘ืžืงื•ืจ ืงื‘ืฆื™ื. ื”ื”ืขื‘ืจื” ื”ืฉืคื™ืขื” ืขืœ 10 ืงื•ื‘ืฆื™ ืžืงื•ืจ (ืžืชื•ืš 000). wchar_t ื”ื•ื—ืœืฃ ื‘-char14_t; ื”ื—ืœื˜ื ื• ืœื ื˜ื•ืฉ ืืช ื”ืฉื™ืžื•ืฉ ื‘-wchar_t, ื›ื™ char000_t ืœื•ืงื— 16 ื‘ืชื™ื ื‘ื›ืœ ืžืขืจื›ืช ื”ื”ืคืขืœื” ื•ืื™ื ื• ืžืงืœืงืœ ืืช ืชืื™ืžื•ืช ื”ืงื•ื“ ื‘ื™ืŸ Windows ื•-Linux.

ื”ื™ื• ื›ืžื” ื”ืจืคืชืงืื•ืช ืงื˜ื ื•ืช. ืœื“ื•ื’ืžื”, ื‘-STLPort ื ื™ืชืŸ ื”ื™ื” ืœื”ื˜ื™ืœ ืื™ื˜ืจื˜ื•ืจ ื‘ืื•ืคืŸ ืžืจื•ืžื– ืœืžืฆื‘ื™ืข ืœืืœืžื ื˜, ื•ื‘ืžืงื•ืžื•ืช ืžืกื•ื™ืžื™ื ื‘ืงื•ื“ ืฉืœื ื• ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื›ืš. ื‘ืกืคืจื™ื•ืช ื—ื“ืฉื•ืช ื›ื‘ืจ ืœื ื ื™ืชืŸ ื”ื™ื” ืœืขืฉื•ืช ื–ืืช, ื•ื”ื™ื” ืฆื•ืจืš ืœื ืชื— ืืช ื”ืงื˜ืขื™ื ื”ืœืœื• ื•ืœืฉื›ืชื‘ ื‘ืื•ืคืŸ ื™ื“ื ื™.

ืื–, ื”ืขื‘ืจืช ื”ืงื•ื“ ื”ื•ืฉืœืžื”, ื”ืงื•ื“ ืžื•ืจื›ื‘ ืขื‘ื•ืจ ื›ืœ ืžืขืจื›ื•ืช ื”ื”ืคืขืœื”. ื”ื’ื™ืข ื”ื–ืžืŸ ืœืžื‘ื—ื ื™ื.

ื‘ื“ื™ืงื•ืช ืœืื—ืจ ื”ืžืขื‘ืจ ื”ืจืื• ื™ืจื™ื“ื” ื‘ื‘ื™ืฆื•ืขื™ื (ื‘ืžืงื•ืžื•ืช ืžืกื•ื™ืžื™ื ืขื“ 20-30%) ื•ืขืœื™ื™ื” ื‘ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ (ืขื“ 10-15%) ื‘ื”ืฉื•ื•ืื” ืœื’ืจืกื” ื”ื™ืฉื ื” ืฉืœ ื”ืงื•ื“. ื–ื” ื”ื™ื”, ื‘ืžื™ื•ื—ื“, ื‘ืฉืœ ื”ื‘ื™ืฆื•ืขื™ื ื”ืœื ืื•ืคื˜ื™ืžืœื™ื™ื ืฉืœ ืžื™ืชืจื™ื ืกื˜ื ื“ืจื˜ื™ื™ื. ืœื›ืŸ, ืฉื•ื‘ ื ืืœืฆื ื• ืœื”ืฉืชืžืฉ ื‘ืงื• ืžืฉืœื ื•, ืฉื”ืฉืชื ื” ืžืขื˜.

ืขื•ื“ ื ื—ืฉืคื” ืชื›ื•ื ื” ืžืขื ื™ื™ื ืช ืฉืœ ื”ื˜ืžืขืช ืงื•ื ื˜ื™ื™ื ืจื™ื ื‘ืกืคืจื™ื•ืช ืžืฉื•ื‘ืฆื•ืช: ืจื™ืง (ืœืœื ืืœืžื ื˜ื™ื) std::map ื•-std::set ืžืกืคืจื™ื•ืช ืžื•ื‘ื ื•ืช ืžืงืฆื•ืช ื–ื™ื›ืจื•ืŸ. ื•ื‘ืฉืœ ืชื›ื•ื ื•ืช ื”ื™ื™ืฉื•ื, ื‘ืžืงื•ืžื•ืช ืžืกื•ื™ืžื™ื ื‘ืงื•ื“ ื ื•ืฆืจื™ื ื“ื™ ื”ืจื‘ื” ืžื›ื•ืœื•ืช ืจื™ืงื•ืช ืžืกื•ื’ ื–ื”. ืžื™ื›ืœื™ ื–ื™ื›ืจื•ืŸ ืกื˜ื ื“ืจื˜ื™ื™ื ืžื•ืงืฆื™ื ืžืขื˜, ืœืืœืžื ื˜ ืฉื•ืจืฉ ืื—ื“, ืื‘ืœ ืขื‘ื•ืจื ื• ื–ื” ื”ืชื‘ืจืจ ื›ื—ื™ื•ื ื™ - ื‘ืžืกืคืจ ืชืจื—ื™ืฉื™ื, ื”ื‘ื™ืฆื•ืขื™ื ืฉืœื ื• ื™ืจื“ื• ืžืฉืžืขื•ืชื™ืช ื•ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ืขืœืชื” (ื‘ื”ืฉื•ื•ืื” ืœ-STLPort). ืœื›ืŸ, ื‘ืงื•ื“ ืฉืœื ื• ื”ื—ืœืคื ื• ืืช ืฉื ื™ ืกื•ื’ื™ ื”ืงื•ื ื˜ื™ื™ื ืจื™ื ื”ืœืœื• ืžื”ืกืคืจื™ื•ืช ื”ืžื•ื‘ื ื•ืช ื‘ื™ื™ืฉื•ื ืฉืœื”ื ืžื‘ื™ืช Boost, ืฉื ืœืงื•ื ื˜ื™ื™ื ืจื™ื ืืœื• ืœื ื”ื™ื™ืชื” ืชื›ื•ื ื” ื–ื•, ื•ื–ื” ืคืชืจ ืืช ื”ื‘ืขื™ื” ืฉืœ ื”ืื˜ื” ื•ืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ ืžื•ื’ื‘ืจืช.

ื›ืคื™ ืฉืงื•ืจื” ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœืื—ืจ ืฉื™ื ื•ื™ื™ื ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ ื‘ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื, ื”ืื™ื˜ืจืฆื™ื” ื”ืจืืฉื•ื ื” ืฉืœ ืงื•ื“ ื”ืžืงื•ืจ ืœื ืขื‘ื“ื” ืœืœื ื‘ืขื™ื•ืช, ื•ื›ืืŸ, ื‘ืžื™ื•ื—ื“, ื”ืชืžื™ื›ื” ื‘ืื™ื˜ืจื˜ื•ืจื™ื ืฉืœ ืื™ืชื•ืจ ื‘ืื’ื™ื ื‘ื™ื™ืฉื•ื Windows ื”ื•ืขื™ืœื”. ืฆืขื“ ืื—ืจ ืฆืขื“ ื”ืชืงื“ืžื ื•, ื•ืขื“ ืื‘ื™ื‘ 2017 (ื’ืจืกื” 8.3.11 1C:Enterprise) ื”ื•ืฉืœืžื” ื”ื”ื’ื™ืจื”.

ืชื•ืฆืื•ืช ืฉืœ

ื”ืžืขื‘ืจ ืœืชืงืŸ C++14 ืœืงื— ืœื ื• ื›-6 ื—ื•ื“ืฉื™ื. ืจื•ื‘ ื”ื–ืžืŸ ืขื‘ื“ ืขืœ ื”ืคืจื•ื™ืงื˜ ืžืคืชื— ืื—ื“ (ืืš ื‘ืขืœ ื›ื™ืฉื•ืจื™ื ื’ื‘ื•ื”ื™ื ืžืื•ื“), ื•ื‘ืฉืœื‘ ื”ืกื•ืคื™ ื”ืฆื˜ืจืคื• ื ืฆื™ื’ื™ื ืฉืœ ืฆื•ื•ืชื™ื ื”ืื—ืจืื™ื ืขืœ ืชื—ื•ืžื™ื ืกืคืฆื™ืคื™ื™ื - ืžืžืฉืง ืžืฉืชืžืฉ, ืืฉื›ื•ืœ ืฉืจืชื™ื, ื›ืœื™ ืคื™ืชื•ื— ื•ื ื™ื”ื•ืœ ื•ื›ื•'.

ื”ืžืขื‘ืจ ืคืฉื˜ ืžืื•ื“ ืืช ืขื‘ื•ื“ืชื ื• ื‘ืžืขื‘ืจ ืœื’ืจืกืื•ืช ื”ืื—ืจื•ื ื•ืช ืฉืœ ื”ืชืงืŸ. ืœืคื™ื›ืš, ื’ืจืกื” 1C:Enterprise 8.3.14 (ื‘ืคื™ืชื•ื—, ืฉื—ืจื•ืจ ืžืชื•ื›ื ืŸ ืœืชื—ื™ืœืช ื”ืฉื ื” ื”ื‘ืื”) ื›ื‘ืจ ื”ื•ืขื‘ืจื” ืœืชืงืŸ C++17.

ืœืื—ืจ ื”ื”ื’ื™ืจื”, ืœืžืคืชื—ื™ื ื™ืฉ ืืคืฉืจื•ื™ื•ืช ื ื•ืกืคื•ืช. ืื ืงื•ื“ื ืœื›ืŸ ื”ื™ื™ืชื” ืœื ื• ื’ืจืกื” ืฉื•ื ื” ืžืฉืœื ื• ืฉืœ STL ื•ืžืจื—ื‘ ืฉืžื•ืช ืกื˜ื“ ืื—ื“, ื›ืขืช ื™ืฉ ืœื ื• ืžื—ืœืงื•ืช ืกื˜ื ื“ืจื˜ื™ื•ืช ืžืกืคืจื™ื•ืช ื”ืžื”ื“ืจื™ื ื”ืžื•ื‘ื ื•ืช ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ std, ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช stdx - ื”ืงื•ื•ื™ื ื•ื”ืžื›ื•ืœื•ืช ืฉืœื ื• ืžื•ืชืืžื™ื ืœืžืฉื™ืžื•ืช ืฉืœื ื•, ื‘ื“ื—ื™ืคื” - ื”- ื”ื’ืจืกื” ื”ืื—ืจื•ื ื” ืฉืœ boost. ื•ื”ืžืคืชื— ืžืฉืชืžืฉ ื‘ืื•ืชืŸ ืžื—ืœืงื•ืช ืฉืžืชืื™ืžื•ืช ื‘ืฆื•ืจื” ืžื™ื˜ื‘ื™ืช ื›ื“ื™ ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื•ืช ืฉืœื•.

ื”ื™ื™ืฉื•ื "ื”ืžืงื•ืจื™" ืฉืœ ื‘ื ืื™ ืžื”ืœื›ื™ื ืขื•ื–ืจ ื’ื ื‘ืคื™ืชื•ื— (ืœื”ื–ื™ื– ื‘ื•ื ื™ื) ืœืžืกืคืจ ืฉื™ืขื•ืจื™ื. ืื ืœืžื—ืœืงื” ื™ืฉ ื‘ื ืื™ ืชื ื•ืขื” ื•ื”ืžื—ืœืงื” ื”ื–ื• ืžืžื•ืงืžืช ื‘ืงื•ื ื˜ื™ื™ื ืจ, ืื–ื™ ื”-STL ืžื™ื™ืขืœ ืืช ื”ื”ืขืชืงื” ืฉืœ ื”ืืœืžื ื˜ื™ื ื‘ืชื•ืš ื”ืงื•ื ื˜ื™ื™ื ืจ (ืœื“ื•ื’ืžื”, ื›ืืฉืจ ื”ืงื•ื ื˜ื™ื™ื ืจ ืžื•ืจื—ื‘ ื•ื™ืฉ ืฆื•ืจืš ืœืฉื ื•ืช ืงื™ื‘ื•ืœืช ื•ืœื”ืงืฆื•ืช ืžื—ื“ืฉ ืืช ื”ื–ื™ื›ืจื•ืŸ).

ื›ืฃ ื–ืคืช

ืื•ืœื™ ื”ื”ืฉืœื›ื” ื”ื›ื™ ืœื ื ืขื™ืžื” (ืืš ืœื ืงืจื™ื˜ื™ืช) ืฉืœ ื”ื’ื™ืจื” ื”ื™ื ืฉืื ื• ืขื•ืžื“ื™ื ื‘ืคื ื™ ืขืœื™ื™ื” ื‘ื ืคื— ืงื‘ืฆื™ obj, ื•ื”ืชื•ืฆืื” ื”ืžืœืื” ืฉืœ ื”ื‘ื ื™ื™ื” ืขื ื›ืœ ืงื‘ืฆื™ ื”ื‘ื™ื ื™ื™ื ื”ื—ืœื” ืœืชืคื•ืก 60โ€“70 GB. ื”ืชื ื”ื’ื•ืช ื–ื• ื ื•ื‘ืขืช ืžื”ืžื•ื–ืจื•ื™ื•ืช ืฉืœ ืกืคืจื™ื•ืช ืกื˜ื ื“ืจื˜ื™ื•ืช ืžื•ื“ืจื ื™ื•ืช, ืฉื”ืคื›ื• ืคื—ื•ืช ืงืจื™ื˜ื™ื•ืช ืœื’ื•ื“ืœ ืงื‘ืฆื™ ื”ืฉื™ืจื•ืช ืฉื ื•ืฆืจื•. ื–ื” ืœื ืžืฉืคื™ืข ืขืœ ืคืขื•ืœืช ื™ื™ืฉื•ื ื”ื”ื™ื“ื•ืจ, ืื‘ืœ ื–ื” ื’ื•ืจื ืœืžืกืคืจ ืื™ ื ื•ื—ื•ืช ื‘ืคื™ืชื•ื—, ื‘ืžื™ื•ื—ื“ ื–ื” ืžื’ื“ื™ืœ ืืช ื–ืžืŸ ื”ื”ื™ื“ื•ืจ. ื’ื ื”ื“ืจื™ืฉื•ืช ืœืฉื˜ื— ื“ื™ืกืง ืคื ื•ื™ ื‘ืฉืจืชื™ ื‘ื ื™ื™ื” ื•ื‘ืžื›ื•ื ื•ืช ืžืคืชื—ื™ื ืขื•ืœื•ืช. ื”ืžืคืชื—ื™ื ืฉืœื ื• ืขื•ื‘ื“ื™ื ืขืœ ื›ืžื” ื’ืจืกืื•ืช ืฉืœ ื”ืคืœื˜ืคื•ืจืžื” ื‘ืžืงื‘ื™ืœ, ื•ืžืื•ืช ื’ื™ื’ื”-ื‘ื™ื™ื˜ ืฉืœ ืงื‘ืฆื™ ื‘ื™ื ื™ื™ื ืœืคืขืžื™ื ื™ื•ืฆืจื™ื ืงืฉื™ื™ื ื‘ืขื‘ื•ื“ืชื. ื”ื‘ืขื™ื” ืœื ื ืขื™ืžื”, ืื‘ืœ ืœื ืงืจื™ื˜ื™ืช; ื“ื—ื™ื ื• ืืช ื”ืคืชืจื•ืŸ ืฉืœื” ืœืขืช ืขืชื”. ืื ื• ืฉื•ืงืœื™ื ืืช ื”ื˜ื›ื ื•ืœื•ื’ื™ื” ื›ืื—ืช ื”ืืคืฉืจื•ื™ื•ืช ืœืคืชื•ืจ ืื•ืชื” ืœื‘ื ื•ืช ืื—ื“ื•ืช (ื‘ืคืจื˜, ื’ื•ื’ืœ ืžืฉืชืžืฉืช ื‘ื• ื‘ืขืช ืคื™ืชื•ื— ื“ืคื“ืคืŸ ื›ืจื•ื).

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”