Tehnografi.com - ВСхнологичСскиС новости, ΠΎΠ±Π·ΠΎΡ€Ρ‹ ΠΈ совСты

Microsoft выпустила ΠΊΠΎΠ΄ ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C ++, которая находится Π² Visual Studio

Π›ΠΎΠ³ΠΎΡ‚ΠΈΠΏ Microsoft

На ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ CppCon 2019 ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отмСчаСтся Π² эти Π΄Π½ΠΈ, ЭкспСрты Microsoft воспользовались Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΎΠ± ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΊΠΎΠ΄Π° для Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C ++ (Ρ‚Π°ΠΊΠΆΠ΅ извСстный ΠΊΠ°ΠΊ STL), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ инструмСнтария MSVC ΠΈ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Visual Studio.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ возмоТности, описанныС Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… стандартах C ++ 14 ΠΈ C ++ 17, Π° Ρ‚Π°ΠΊΠΆΠ΅ развиваСтся Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ стандарта C ++ 20 послС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

По словам ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΏΠΎΡ‡Π΅ΠΌΡƒ люди Microsoft Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ этот шаг, Π² заявлСнии пояснитС:

Π•ΡΡ‚ΡŒ нСсколько ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ это, ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ… – Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² STL Π½Π° GitHub, это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ нашим ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° нашСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ, Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ наши послСдниС измСнСния ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Ρ‚ΡŒ Π½Π°ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ наши запросы Π½Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅, просматривая ΠΈΡ….

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ стандартизация C ++ ускоряСтся, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π³ΠΎΠ΄ Π³ΠΎΠ»ΠΎΡΡƒΡŽΡ‚ Π·Π° Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности, ΠΌΡ‹ считаСм, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. (НапримСр, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ хронологичСского Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° C ++ 20 ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π°ΠΌΠΈ). ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ‚ΠΈΠΌ снова внСсти свой Π²ΠΊΠ»Π°Π΄ Π² сообщСство C ++, сдСлав Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π°ΡˆΠΈΡ… основных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. (НапримСр, C ++ 17 charconv)

Π‘ этим Π›ΡŽΠ΄ΠΈ ΠΈΠ· Microsoft говорят, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ разрабатываСтся Π² GitHub, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ запросы извлСчСния ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² с исправлСниями ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (для участия Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ трСбуСтся соглашСниС CLA для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΡ€Π°Π² собствСнности Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄).

Π—Π°ΠΌΠ΅Ρ‡Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ STL Π½Π° GitHub ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ Microsoft ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ Ρ…ΠΎΠ΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, экспСримСнтируйтС с послСдними измСнСниями ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΠΉΡ‚Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ заявки Π½Π° ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΈ.

ΠžΡ‚ΠΊΡ€ΠΎΠΉ ΠΊΠΎΠ΄ Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ сообщСству ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ возмоТностСй Π½ΠΎΠ²Ρ‹Ρ… стандартов Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

О Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Он прСдлагаСтся ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0 с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ для Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния Π² состав сгСнСрированных исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ².

Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ясным, STL MSVC Π½Π΅ сливаСтся с libc ++, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ.

Microsoft ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Π²Ρ‹Π±Ρ€Π°Π½ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ позволял ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ΄ΠΎΠΌ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ libc ++ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° LLVM. STL ΠΈ libc ++ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ структур Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ, Ссли ΠΎΠ½ΠΈ ΠΏΠΎΠΆΠ΅Π»Π°ΡŽΡ‚, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ libc ++ ΠΌΠΎΠ³ΡƒΡ‚ нСсти интСрСсныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ STL (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, charconv), Π»ΠΈΠ±ΠΎ ΠΎΠ±Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ совмСстно Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΈ.

MSVC STL распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache v2.0 с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ LLVM, которая Π±Ρ‹Π»Π° Π½Π΅Π΄Π°Π²Π½ΠΎ создана ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Clang / LLVM / libc ++.

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ Apache, ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ упоминания ΠΎΠ± использовании исходного ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΏΡ€ΠΈ доставкС Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², скомпилированных с использованиСм STL, для ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π­Ρ‚Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ лицСнзия с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρƒ ΠΆΠ΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΠΈ libc ++. Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ ΠΎΠ±ΠΌΠ΅Π½ ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ ясно, MSVC STL Π½Π΅ сливаСтся с libc ++; Они ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ прСдставлСниями структуры Π΄Π°Π½Π½Ρ‹Ρ….

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° называСтся ΠΏΠΎΠ»Π½ΠΎΠ΅ соотвСтствиС трСбованиям спСцификаций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, простоту использования (ΠΎΡ‚Π»Π°Π΄ΠΊΠ°, диагностика, инструмСнты обнаруТСния ошибок) ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ исходного ΠΊΠΎΠ΄Π° ΠΈ ABI с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ вСрсиями Visual Studio 2015/2017.

Π‘Ρ€Π΅Π΄ΠΈ областСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Microsoft Π½Π΅ заинтСрСсована Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ пСрСносимости Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ заявлСнии, сдСланном Microsoft, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π½ΠΈΠΌ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ссылкС.