Microsoft ΠΎΡ‚Π²ΠΎΡ€ΠΈ ΠΊΠΎΠ΄Π° Π·Π° C++ Standard Library, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ΄Π²Π° с Visual Studio

На конфСрСнцията CppCon 2019, която сС ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π° Ρ‚Π΅Π·ΠΈ Π΄Π½ΠΈ, Microsoft обявиха относно отварянСто Π½Π° ΠΊΠΎΠ΄Π° Π½Π° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° рСализация Π½Π° C++ Standard Library (STL, C++ Standard Library), която Π΅ част ΠΎΡ‚ инструмСнтариума MSVC ΠΈ срСдата Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Visual Studio. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΠΏΡ€ΠΈΠ»Π°Π³Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅, описани Π² настоящитС стандарти C++14 ΠΈ C++17, ΠΈ ΡΡŠΡ‰ΠΎ сС Ρ€Π°Π·Π²ΠΈΠ²Π° към ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π±ΡŠΠ΄Π΅Ρ‰ΠΈΡ стандарт C++20, слСд ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² тСкущия Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Код Π΅ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΎ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Apache 2.0 с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π° Π΄Π²ΠΎΠΈΡ‡Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС Π² Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ сС ΠΏΠ»Π°Π½ΠΈΡ€Π° Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Π½Π° GitHub, ΠΏΡ€ΠΈΠ΅ΠΌΠ°ΠΉΠΊΠΈ заявки Π·Π° изтСглянС ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ страни с ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ ΠΈ внСдряванС Π½Π° Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (участиСто Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° изисква подписванС Π½Π° CLA споразумСниС Π·Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ ΠΏΡ€Π°Π²Π° Π½Π° собствСност Π²ΡŠΡ€Ρ…Ρƒ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄). ΠžΡ‚Π±Π΅Π»ΡΠ·Π²Π° сС, Ρ‡Π΅ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅Ρ‚ΠΎ Π½Π° STL Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° към GitHub Ρ‰Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° Microsoft Π΄Π° прослСдяват Π½Π°ΠΏΡ€Π΅Π΄ΡŠΠΊΠ° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°, Π΄Π° СкспСримСнтират с Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° входящитС заявки Π·Π° добавянС Π½Π° ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ.

ΠžΡ‚Π²ΠΎΡ€Π΅Π½ΠΈΡΡ‚ ΠΊΠΎΠ΄ ΡΡŠΡ‰ΠΎ Ρ‰Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° общността Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π³ΠΎΡ‚ΠΎΠ²ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‚Π΅ стандарти Π² Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ. НапримСр, Π»ΠΈΡ†Π΅Π½Π·ΡŠΡ‚ Π·Π° ΠΊΠΎΠ΄ Π΅ ΠΈΠ·Π±Ρ€Π°Π½, Π·Π° Π΄Π° прСдостави Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° сподСлянС Π½Π° ΠΊΠΎΠ΄ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° libc++ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° LLVM. STL ΠΈ libc++ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°Ρ‚ във Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎΡ‚ΠΎ прСдставянС Π½Π° структуритС ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ Π°ΠΊΠΎ ТСлаят, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° libc++ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° прСнСсат интСрСсна функционалност ΠΎΡ‚ STL (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ charconv) ΠΈΠ»ΠΈ ΠΈ Π΄Π²Π°Ρ‚Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ³Π°Ρ‚ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎ Π΄Π° разработят някои ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ. Π˜Π·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ‚Π°, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ към Π»ΠΈΡ†Π΅Π½Π·Π° Π½Π° Apache, ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Ρ‚ изискванСто Π΄Π° сС Ρ†ΠΈΡ‚ΠΈΡ€Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° оригиналния ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС доставят Π΄Π²ΠΎΠΈΡ‡Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈ с STL, Π½Π° ΠΊΡ€Π°ΠΉΠ½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ.

ΠžΡΠ½ΠΎΠ²Π½ΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ пълно ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с изискванията Π½Π° спСцификацията, осигуряванС Π½Π° висока производитСлност, Π»Π΅ΠΊΠΎΡ‚Π° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ (инструмСнти Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, диагностика, ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ) ΠΈ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ Π½Π° Π½ΠΈΠ²ΠΎ ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ ΠΈ ABI с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ вСрсии Π½Π° Visual Studio 2015/2017. Π‘Ρ€Π΅Π΄ областитС, ΠΊΠΎΠΈΡ‚ΠΎ Microsoft Π½Π΅ сС интСрСсуват ΠΎΡ‚ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅, са прСнасянСто към Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ ΠΈ добавянСто Π½Π° нСстандартни Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

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