Как ΠΏΡ€Π΅Π²Π΅Π΄ΠΎΡ…ΠΌΠ΅ 10 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° C++ ΠΊΠΎΠ΄ към стандарта C++14 (ΠΈ слСд Ρ‚ΠΎΠ²Π° към C++17)

ΠŸΡ€Π΅Π΄ΠΈ извСстно Π²Ρ€Π΅ΠΌΠ΅ (ΠΏΡ€Π΅Π· СсСнта Π½Π° 2016 Π³.), ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° слСдващата вСрсия Π½Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π½Π°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1C:Enterprise, Π² Π΅ΠΊΠΈΠΏΠ° Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° възникна Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° новия стандарт C ++ 14 Π² нашия ΠΊΠΎΠ΄. ΠŸΡ€Π΅Ρ…ΠΎΠ΄ΡŠΡ‚ към Π½ΠΎΠ² стандарт, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ…ΠΌΠ΅, Ρ‰Π΅ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° пишСм ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ‰Π° ΠΏΠΎ-Π΅Π»Π΅Π³Π°Π½Ρ‚Π½ΠΎ, просто ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ ΠΈ Ρ‰Π΅ опрости ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠ΄Π°. И ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, Ρ‡Π΅ Π² ΠΏΡ€Π΅Π²ΠΎΠ΄Π° няма Π½ΠΈΡ‰ΠΎ Π½Π΅ΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½ΠΎ, Π°ΠΊΠΎ Π½Π΅ ΠΈ ΠΌΠ°Ρ‰Π°Π±ΡŠΡ‚ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ‚Π° Π±Π°Π·Π° ΠΈ спСцифичнитС характСристики Π½Π° нашия ΠΊΠΎΠ΄.

Π—Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ знаят, 1C:Enterprise Π΅ срСда Π·Π° Π±ΡŠΡ€Π·ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΡƒΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½ΠΈ бизнСс прилоТСния ΠΈ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС Π·Π° тяхното изпълнСниС Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми ΠΈ Π‘Π£Π‘Π”. Π’ ΠΎΠ±Ρ‰ΠΈ Π»ΠΈΠ½ΠΈΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΡŠΡ‚ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°:

ΠžΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ сС Π΄Π° пишСм Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ ΠΊΠΎΠ΄ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми, Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π΅ възмоТно - ΡΡŠΡ€Π²ΡŠΡ€Π½Π°Ρ‚Π° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π° Π΅ 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, Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΠΌΠ΅ Linux ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Ρ…ΠΌΠ΅ към стандартна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Ρ‚Ρ€Π΅Ρ‚Π° страна STLPort. Π•Π΄Π½Π° ΠΎΡ‚ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π° бСшС Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с ΡˆΠΈΡ€ΠΎΠΊΠΈ Π»ΠΈΠ½ΠΈΠΈ. Π’ нашия ΠΊΠΎΠ΄ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ std::wstring, ΠΊΠΎΠΉΡ‚ΠΎ сС основава Π½Π° Ρ‚ΠΈΠΏΠ° wchar_t навсякъдС. Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ ΠΌΡƒ Π² Windows Π΅ 2 Π±Π°ΠΉΡ‚Π°, Π° Π² Linux ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ 4 Π±Π°ΠΉΡ‚Π°. Π’ΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π΅ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ ΡΡŠΡ€Π²ΡŠΡ€, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ постоянни Π΄Π°Π½Π½ΠΈ. Използвайки ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ Π½Π° gcc, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° посочитС, Ρ‡Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° wchar_t ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° компилация ΡΡŠΡ‰ΠΎ Π΅ 2 Π±Π°ΠΉΡ‚Π°, Π½ΠΎ Ρ‚ΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π±Ρ€Π°Π²ΠΈΡ‚Π΅ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π°, Ρ‚.ΠΊ. Ρ‚ΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° glibc, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΡ‚ своя страна Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ Π·Π° 4-Π±Π°ΠΉΡ‚ΠΎΠ² wchar_t. Π”Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ бяха ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π°Ρ‚Π° имплСмСнтация Π½Π° стандартни класовС, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ…Π΅Ρˆ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ΠΈ Π΄ΠΎΡ€ΠΈ Смулация Π½Π° сСмантиката Π½Π° прСмСстванС Π²ΡŠΡ‚Ρ€Π΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ. И ΠΎΡ‰Π΅ Π΅Π΄Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΊΠ°ΠΊΡ‚ΠΎ сС ΠΊΠ°Π·Π²Π° Π½Π΅ Π½Π° послСдно място, бСшС ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° струнитС. Π˜ΠΌΠ°Ρ…ΠΌΠ΅ собствСн клас Π·Π° струни, Π·Π°Ρ‰ΠΎΡ‚ΠΎ... ΠŸΠΎΡ€Π°Π΄ΠΈ спСцификата Π½Π° нашия софтуСр, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ с Π½ΠΈΠ·ΠΎΠ²Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈ Π·Π° нас Ρ‚ΠΎΠ²Π° Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ.

ΠΠ°ΡˆΠΈΡΡ‚ Π½ΠΈΠ· сС основава Π½Π° ΠΈΠ΄Π΅ΠΈ Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅, ΠΈΠ·Ρ€Π°Π·Π΅Π½ΠΈ ΠΎΡ‰Π΅ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° 2000-Ρ‚Π΅ АндрСй АлСксандрСску. По-късно, ΠΊΠΎΠ³Π°Ρ‚ΠΎ АлСксандрСску Ρ€Π°Π±ΠΎΡ‚ΠΈ във Facebook, ΠΏΠΎ Π½Π΅Π³ΠΎΠ²ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Ρ€Π΅Π΄ във Facebook двигатСля, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ (Π²ΠΈΠΆ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π±Π΅Π·ΡƒΠΌΠΈΠ΅).

ΠΠ°ΡˆΠ°Ρ‚Π° линия ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄Π²Π΅ основни Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π° оптимизация:

  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++ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Ρ‚Π΅Π·ΠΈ области API Π½Π° POSIX.

И Π½ΠΈΠ΅ ΠΈΠ·Π±Ρ€Π°Ρ…ΠΌΠ΅ трСтия ΠΏΡŠΡ‚.

ΠŸΡ€Π΅Ρ…ΠΎΠ΄

Π’Π°ΠΊΠ° Ρ‡Π΅ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° STLPort с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ (Visual Studio 2015 Π·Π° Windows, gcc 7 Π·Π° Linux, clang 8 Π·Π° macOS).

Π—Π° щастиС Π½Π°ΡˆΠΈΡΡ‚ ΠΊΠΎΠ΄ бСшС написан Π³Π»Π°Π²Π½ΠΎ Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с указанията ΠΈ Π½Π΅ използвашС всякакви Ρ…ΠΈΡ‚Ρ€ΠΈ Ρ‚Ρ€ΠΈΠΊΠΎΠ²Π΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ миграцията към Π½ΠΎΠ²ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€ΠΎΡ‚Π΅Ρ‡Π΅ сравнитСлно Π³Π»Π°Π΄ΠΊΠΎ, с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° скриптовС, ΠΊΠΎΠΈΡ‚ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ…Π° ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅, класовС, пространства ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π² изходния ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡΡ‚Π° засСгна 10 000 ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈ Ρ„Π°ΠΉΠ»Π° (ΠΎΡ‚ 14 000). wchar_t бСшС Π·Π°ΠΌΠ΅Π½Π΅Π½ ΠΎΡ‚ char16_t; Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° изоставим ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° wchar_t, Π·Π°Ρ‰ΠΎΡ‚ΠΎ char16_t ΠΎΡ‚Π½Π΅ΠΌΠ° 2 Π±Π°ΠΉΡ‚Π° Π½Π° всички ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми ΠΈ Π½Π΅ разваля ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Windows ΠΈ Linux.

ИмашС някои ΠΌΠ°Π»ΠΊΠΈ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. НапримСр, Π² STLPort ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚Π½ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ към ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π» към Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΈ Π½Π° някои мСста Π² нашия ΠΊΠΎΠ΄ Ρ‚ΠΎΠ²Π° бСшС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ. Π’ Π½ΠΎΠ²ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²Π΅Ρ‡Π΅ Π½Π΅ бСшС възмоТно Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠ²Π° ΠΈ Ρ‚Π΅Π·ΠΈ пасаТи Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΈ прСнаписани Ρ€ΡŠΡ‡Π½ΠΎ.

И Ρ‚Π°ΠΊΠ°, миграцията Π½Π° ΠΊΠΎΠ΄Π° Π΅ Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½Π°, ΠΊΠΎΠ΄ΡŠΡ‚ Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ Π·Π° всички ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми. Π’Ρ€Π΅ΠΌΠ΅ Π΅ Π·Π° тСстовС.

ВСстовСтС слСд ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ…Π° спад Π² производитСлността (Π½Π° мСста Π΄ΠΎ 20-30%) ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ (Π΄ΠΎ 10-15%) Π² сравнСниС със старата вСрсия Π½Π° ΠΊΠΎΠ΄Π°. Π’ΠΎΠ²Π° сС дълТи ΠΏΠΎ-спСциално Π½Π° Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½Π°Ρ‚Π° производитСлност Π½Π° стандартнитС Π½ΠΈΠ·ΠΎΠ²Π΅. Π—Π°Ρ‚ΠΎΠ²Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ собствСна, Π»Π΅ΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π° линия.

Π‘Π΅ΡˆΠ΅ Ρ€Π°Π·ΠΊΡ€ΠΈΡ‚Π° ΠΈ интСрСсна характСристика Π½Π° внСдряванСто Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ във Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ: ΠΏΡ€Π°Π·Π½ΠΈ (Π±Π΅Π· Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ) std::map ΠΈ std::set ΠΎΡ‚ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ разпрСдСлят ΠΏΠ°ΠΌΠ΅Ρ‚. И ΠΏΠΎΡ€Π°Π΄ΠΈ характСристикитС Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π½Π° някои мСста Π² ΠΊΠΎΠ΄Π° сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ доста ΠΏΡ€Π°Π·Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ Ρ‚ΠΈΠΏ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π·Π° ΠΏΠ°ΠΌΠ΅Ρ‚ сС разпрСдСлят ΠΌΠ°Π»ΠΊΠΎ, Π·Π° Π΅Π΄ΠΈΠ½ основСн Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚, Π½ΠΎ Π·Π° нас Ρ‚ΠΎΠ²Π° сС ΠΎΠΊΠ°Π·Π° ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ - Π² Ρ€Π΅Π΄ΠΈΡ†Π° сцСнарии производитСлността Π½ΠΈ спадна Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈ консумацията Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ (Π² сравнСниС със STLPort). Π—Π°Ρ‚ΠΎΠ²Π° Π² нашия ΠΊΠΎΠ΄ Π·Π°ΠΌΠ΅Π½ΠΈΡ…ΠΌΠ΅ Ρ‚Π΅Π·ΠΈ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΎΡ‚ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с имплСмСнтацията ΠΈΠΌ ΠΎΡ‚ Boost, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ нямаха Ρ‚Π°Π·ΠΈ функция ΠΈ Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° със забавянСто ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΎΡ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚.

ΠšΠ°ΠΊΡ‚ΠΎ чСсто сС случва слСд ΠΌΠ°Ρ‰Π°Π±Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, ΠΏΡŠΡ€Π²Π°Ρ‚Π° итСрация Π½Π° изходния ΠΊΠΎΠ΄ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ Ρ‚ΡƒΠΊ ΠΏΠΎ-спСциално ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π² рСализацията Π½Π° Windows бСшС ΠΏΠΎΠ»Π΅Π·Π½Π°. Π‘Ρ‚ΡŠΠΏΠΊΠ° ΠΏΠΎ ΡΡ‚ΡŠΠΏΠΊΠ° Π²ΡŠΡ€Π²ΡΡ…ΠΌΠ΅ Π½Π°ΠΏΡ€Π΅Π΄ ΠΈ Π΄ΠΎ ΠΏΡ€ΠΎΠ»Π΅Ρ‚Ρ‚Π° Π½Π° 2017 Π³. (вСрсия 8.3.11 1C:Enterprise) миграцията ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚

ΠŸΡ€Π΅Ρ…ΠΎΠ΄ΡŠΡ‚ към стандарта C++14 Π½ΠΈ ΠΎΡ‚Π½Π΅ ΠΎΠΊΠΎΠ»ΠΎ 6 мСсСца. По-голямата част ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ€Π°Π±ΠΎΡ‚Π΅ΡˆΠ΅ Π΅Π΄ΠΈΠ½ (Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ висококвалифициран) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Π° Π½Π° финалния Π΅Ρ‚Π°ΠΏ сС Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ…Π° прСдставитСли Π½Π° Π΅ΠΊΠΈΠΏΠΈ, отговарящи Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ области - UI, ΡΡŠΡ€Π²ΡŠΡ€Π΅Π½ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€, инструмСнти Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ администриранС ΠΈ Π΄Ρ€.

ΠŸΡ€Π΅Ρ…ΠΎΠ΄ΡŠΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ опрости Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½ΠΈ ΠΏΠΎ ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ към Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡ‚Π΅ вСрсии Π½Π° стандарта. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ вСрсия 1C:Enterprise 8.3.14 (Π² процСс Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, пусканС насрочСно Π·Π° Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° слСдващата Π³ΠΎΠ΄ΠΈΠ½Π°) Π²Π΅Ρ‡Π΅ Π΅ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½Π° към стандарта C++17.

Π‘Π»Π΅Π΄ миграцията Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΈΠΌΠ°Ρ‚ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ. Ако ΠΏΠΎ-Ρ€Π°Π½ΠΎ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ собствСна ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π° вСрсия Π½Π° STL ΠΈ Π΅Π΄Π½ΠΎ std пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°, сСга ΠΈΠΌΠ°ΠΌΠ΅ стандартни класовС ΠΎΡ‚ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Π² std пространството ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°, Π² stdx пространството ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° - Π½Π°ΡˆΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π·Π° Π½Π°ΡˆΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Π² boost - Π½Π°ΠΉ-Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° boost. И Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠ½Π΅Π·ΠΈ класовС, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΎ подходящи Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

β€žΠΠ°Ρ‚ΠΈΠ²Π½ΠΎΡ‚ΠΎβ€œ внСдряванС Π½Π° конструкторитС Π·Π° прСмСстванС ΡΡŠΡ‰ΠΎ ΠΏΠΎΠΌΠ°Π³Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° (прСмСстванС Π½Π° конструктори) Π·Π° няколко класа. Ако Π΄Π°Π΄Π΅Π½ клас ΠΈΠΌΠ° конструктор Π·Π° прСмСстванС ΠΈ Ρ‚ΠΎΠ·ΠΈ клас Π΅ поставСн Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Ρ‚ΠΎΠ³Π°Π²Π° STL ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π° ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π²ΡŠΡ‚Ρ€Π΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ Π΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚ΡŠΡ‚ ΠΈ Π΄Π° сС ΠΏΡ€Π΅Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»ΠΈ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°).

ΠŸΠΎΠ»Π΅Ρ‚ Π² ΠΌΠ΅Ρ…Π»Π΅ΠΌΠ°

МоТС Π±ΠΈ Π½Π°ΠΉ-нСприятната (Π½ΠΎ Π½Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π°) послСдица ΠΎΡ‚ миграцията Π΅, Ρ‡Π΅ смС ΠΈΠ·ΠΏΡ€Π°Π²Π΅Π½ΠΈ ΠΏΡ€Π΅Π΄ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΌΠ° obj Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π° ΠΏΡŠΠ»Π½ΠΈΡΡ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΎΡ‚ компилацията с всички ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° Π·Π°Π΅ΠΌΠ° 60–70 GB. Π’ΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ сС дълТи Π½Π° особСноститС Π½Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ стандартни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са станали ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ към Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ сСрвизни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Π’ΠΎΠ²Π° Π½Π΅ засяга Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ причинява Ρ€Π΅Π΄ΠΈΡ†Π° нСудобства ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°, ΠΏΠΎ-спСциално ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅. Π˜Π·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡ‚Π° Π·Π° свободно дисково пространство Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ ΠΈ Π½Π° машини Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΡΡŠΡ‰ΠΎ сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚. ΠΠ°ΡˆΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ работят ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ Π²ΡŠΡ€Ρ…Ρƒ няколко вСрсии Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈ стотици Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ понякога ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ затруднСния Π² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΈΠΌ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ нСприятСн, Π½ΠΎ Π½Π΅ ΠΈ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅Π½, засСга ΠΎΡ‚Π»Π°Π³Π°ΠΌΠ΅ Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ. Π Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ тСхнологията ΠΊΠ°Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈΡ‚Π΅ Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Сдинство (ΠΏΠΎ-спСциално Google Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° Chrome).

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€