C++ Π ΡƒΡΠΈΡ˜Π°: ΠΊΠ°ΠΊΠΎ сС случи

Ако Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ Π½Π° прСтставата ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π΄Π΅ΠΊΠ° Π½Π° Ρ•ΠΈΠ΄ΠΎΡ‚ виси ΡˆΠΈΡ„Ρ€Π° C++, Ρ‚ΠΎΠ³Π°Ρˆ Π΄ΠΎ ΠΊΡ€Π°Ρ˜ΠΎΡ‚ Π΅ ΠΎΠ±Π²Ρ€Π·Π°Π½Π° Π΄Π° Π²ΠΈ ΠΏΡƒΠΊΠ° Π²ΠΎ Π½ΠΎΠ³Π°.

Π‘Ρ˜Π°Ρ€Π½Π΅ Бтруструп

Од 31 ΠΎΠΊΡ‚ΠΎΠΌΠ²Ρ€ΠΈ Π΄ΠΎ 1 Π½ΠΎΠ΅ΠΌΠ²Ρ€ΠΈ, Π²ΠΎ Π‘Π°Π½ΠΊΡ‚ ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ сС ΠΎΠ΄Ρ€ΠΆΠ° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π° C++ Russia Piter - Π΅Π΄Π½Π° ΠΎΠ΄ Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ програмски ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Π²ΠΎ Π ΡƒΡΠΈΡ˜Π°, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΎΠ΄ JUG Ru Group. ГоститС Π³ΠΎΠ²ΠΎΡ€Π½ΠΈΡ†ΠΈ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Π°Ρ‚ Ρ‡Π»Π΅Π½ΠΎΠ²ΠΈ Π½Π° ΠšΠΎΠΌΠΈΡ‚Π΅Ρ‚ΠΎΡ‚ Π·Π° стандарди Π½Π° C++, Π·Π²ΡƒΡ‡Π½ΠΈΡ†ΠΈ Π½Π° CppCon, Π°Π²Ρ‚ΠΎΡ€ΠΈ Π½Π° ΠΊΠ½ΠΈΠ³ΠΈ Π½Π° О'Рајли ΠΈ ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°Ρ‡ΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС LLVM, libc++ ΠΈ Boost. ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π° Π΅ Π½Π°ΠΌΠ΅Π½Π΅Ρ‚Π° Π·Π° искусни Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΈ Π½Π° C++ ΠΊΠΎΠΈ сакаат Π΄Π° ја ΠΏΡ€ΠΎΠ΄Π»Π°Π±ΠΎΡ‡Π°Ρ‚ ΡΠ²ΠΎΡ˜Π°Ρ‚Π° СкспСртиза ΠΈ Π΄Π° Ρ€Π°Π·ΠΌΠ΅Π½Π°Ρ‚ искуства Π²ΠΎ ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π²ΠΎ ΠΆΠΈΠ²ΠΎ. На студСнтитС, Π΄ΠΈΠΏΠ»ΠΎΠΌΠΈΡ€Π°Π½ΠΈΡ‚Π΅ студСнти ΠΈ унивСрзитСтскитС профСсори ΠΈΠΌ сС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Π°Ρ‚ ΠΌΠ½ΠΎΠ³Ρƒ ΡƒΠ±Π°Π²ΠΈ попусти.

ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π° ќС ΠΌΠΎΠΆΠ΅ Π΄Π° сС посСти вСќС Π²ΠΎ Π°ΠΏΡ€ΠΈΠ» слСдната Π³ΠΎΠ΄ΠΈΠ½Π°, Π½ΠΎ Π²ΠΎ ΠΌΠ΅Ρ“ΡƒΠ²Ρ€Π΅ΠΌΠ΅ Π½Π°ΡˆΠΈΡ‚Π΅ студСнти ќС Π²ΠΈ ΠΊΠ°ΠΆΠ°Ρ‚ ΠΊΠ°ΠΊΠ²ΠΈ интСрСсни Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π°ΡƒΡ‡ΠΈΠ»Π΅ Π½Π° послСдниот настан. 

C++ Π ΡƒΡΠΈΡ˜Π°: ΠΊΠ°ΠΊΠΎ сС случи

Π€ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ˜Π° ΠΎΠ΄ конфСрСнциски Π°Π»Π±ΡƒΠΌ

за нас

Π”Π²Π°Ρ˜Ρ†Π° студСнти ΠΎΠ΄ високото Скономско ΡƒΡ‡ΠΈΠ»ΠΈΡˆΡ‚Π΅ Π·Π° Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΠΎΡ‚ истраТувачки ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·ΠΈΡ‚Π΅Ρ‚ - Π‘Π°Π½ΠΊΡ‚ ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ Ρ€Π°Π±ΠΎΡ‚Π΅Π° Π½Π° овој пост:

  • Π›ΠΈΠ·Π° ВасилСнко Π΅ студСнтка Π½Π° 4-Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° додипломски студии која студира програмски Ρ˜Π°Π·ΠΈΡ†ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Ρ‚Π° ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΡ˜ΡƒΡ‚Π΅Ρ€ΡΠΊΠΈ Π½Π°ΡƒΠΊΠΈ. ΠžΡ‚ΠΊΠ°ΠΊΠΎ сС Π·Π°ΠΏΠΎΠ·Π½Π°Π² со Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ C++ Π²ΠΎ ΠΌΠΎΡ˜Π°Ρ‚Π° ΠΏΡ€Π²Π° Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·ΠΈΡ‚Π΅Ρ‚, послСдоватСлно стСкнав искуство Ρ€Π°Π±ΠΎΡ‚Π΅Ρ˜ΡœΠΈ со Π½Π΅Π³ΠΎ ΠΏΡ€Π΅ΠΊΡƒ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Π½Ρ‚ΠΈ Π²ΠΎ ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡ˜Π°Ρ‚Π°. Бтраста ΠΊΠΎΠ½ програмскитС Ρ˜Π°Π·ΠΈΡ†ΠΈ Π²ΠΎΠΎΠΏΡˆΡ‚ΠΎ ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ΅ остави свој Π±Π΅Π»Π΅Π³ Π½Π° ΠΈΠ·Π±ΠΎΡ€ΠΎΡ‚ Π½Π° ΠΈΠ·Π²Π΅ΡˆΡ‚Π°ΠΈ Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π°.
  • Π”Π°ΡšΠ° Π‘ΠΌΠΈΡ€Π½ΠΎΠ² Π΅ студСнт Π²ΠΎ ΠΏΡ€Π²Π° Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° магистСрската ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° β€žΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈβ€œ. Π£ΡˆΡ‚Π΅ Π΄ΠΎΠ΄Π΅ΠΊΠ° Π±Π΅Π² Π½Π° ΡƒΡ‡ΠΈΠ»ΠΈΡˆΡ‚Π΅ ΠΏΠΈΡˆΡƒΠ²Π°Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° ΠžΠ»ΠΈΠΌΠΏΠΈΡ˜Π°Π΄Π°Ρ‚Π° Π½Π° C++, Π° ΠΏΠΎΡ‚ΠΎΠ° Π½Π΅ΠΊΠ°ΠΊΠΎ сС случи Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΎ Π΄Π° сС ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π° Π²ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π½ΠΈΡ‚Π΅ активности ΠΈ Π½Π° ΠΊΡ€Π°Ρ˜ΠΎΡ‚ Π΄Π° станС Π³Π»Π°Π²Π΅Π½ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ јазик. РСшив Π΄Π° учСствувам Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°ΠΌ ΠΌΠΎΠ΅Ρ‚ΠΎ знаСњС ΠΈ Π΄Π° Π½Π°ΡƒΡ‡Π°ΠΌ Π·Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ моТности.

Π’ΠΎ Π±ΠΈΠ»Ρ‚Π΅Π½ΠΎΡ‚, раководството Π½Π° Ρ„Π°ΠΊΡƒΠ»Ρ‚Π΅Ρ‚ΠΎΡ‚ чСсто сподСлува ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Π΅Π΄ΡƒΠΊΠ°Ρ‚ΠΈΠ²Π½ΠΈ настани ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ со Π½Π°ΡˆΠ°Ρ‚Π° ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»Π½ΠΎΡΡ‚. Π’ΠΎ сСптСмври Π²ΠΈΠ΄ΠΎΠ²ΠΌΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° C++ Π ΡƒΡΠΈΡ˜Π° ΠΈ Ρ€Π΅ΡˆΠΈΠ²ΠΌΠ΅ Π΄Π° сС рСгистрирамС ΠΊΠ°ΠΊΠΎ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΠΈ. Ова Π΅ нашС ΠΏΡ€Π²ΠΎ искуство ΠΎΠ΄ учСство Π½Π° Π²Π°ΠΊΠ²ΠΈ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡΠΊΠ° структура

  • Π˜Π·Π²Π΅ΡˆΡ‚Π°ΠΈ

Π’ΠΎ Ρ‚Π΅ΠΊΠΎΡ‚ Π½Π° Π΄Π²Π° Π΄Π΅Π½Π°, СкспСртитС ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π° 30 ΠΈΠ·Π²Π΅ΡˆΡ‚Π°ΠΈ, ΠΏΠΎΠΊΡ€ΠΈΠ²Π°Ρ˜ΡœΠΈ ΠΌΠ½ΠΎΠ³Ρƒ ТСшки Ρ‚Π΅ΠΌΠΈ: гСнијална ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° Ρ˜Π°Π·ΠΈΡ‡Π½ΠΈΡ‚Π΅ карактСристики Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Ρ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΏΡ€Π΅Ρ‚ΡΡ‚ΠΎΡ˜Π½ΠΈ Ρ˜Π°Π·ΠΈΡ‡Π½ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ° Π²ΠΎ врска со Π½ΠΎΠ²ΠΈΠΎΡ‚ стандард, компромиси Π²ΠΎ Π΄ΠΈΠ·Π°Ρ˜Π½ΠΎΡ‚ Π½Π° C++ ΠΈ ΠΌΠ΅Ρ€ΠΊΠΈ Π½Π° прСтпазливост ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° со Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ послСдици, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π½Π° интСрСсна ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, ΠΊΠ°ΠΊΠΎ ΠΈ Π½Π΅ΠΊΠΎΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠ°ΠΊΠΎΡ‚ Π½Π° Ρ˜Π°Π·ΠΈΡ‡Π½Π°Ρ‚Π° инфраструктура. Π’Ρ€ΠΈ прСтстави сС ΠΎΠ΄Ρ€ΠΆΠ°Π° истоврСмСно, Π½Π°Ρ˜Ρ‡Π΅ΡΡ‚ΠΎ Π΄Π²Π΅ Π½Π° руски ΠΈ Π΅Π΄Π½Π° Π½Π° англиски јазик.

  • Π—ΠΎΠ½ΠΈ Π·Π° Π΄ΠΈΡΠΊΡƒΡΠΈΡ˜Π°

По Π·Π°Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π³ΠΎΠ²ΠΎΡ€ΠΎΡ‚, ситС нСпоставСни ΠΏΡ€Π°ΡˆΠ°ΡšΠ° ΠΈ Π½Π΅Π΄ΠΎΠ²Ρ€ΡˆΠ΅Π½ΠΈ дискусии Π±Π΅Π° ΠΏΡ€Π΅Ρ„Ρ€Π»Π΅Π½ΠΈ Π²ΠΎ ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ области Π·Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° со Π³ΠΎΠ²ΠΎΡ€Π½ΠΈΡ†ΠΈΡ‚Π΅, ΠΎΠΏΡ€Π΅ΠΌΠ΅Π½ΠΈ со Ρ‚Π°Π±Π»ΠΈ Π·Π° ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΈ. Π”ΠΎΠ±Π°Ρ€ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° ја ΠΎΠ΄Π΄Π°Π»Π΅Ρ‡ΠΈΡ‚Π΅ ΠΏΠ°ΡƒΠ·Π°Ρ‚Π° ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ со ΠΏΡ€ΠΈΡ˜Π°Ρ‚Π΅Π½ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€.

  • Молња Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΈ ΠΈ Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»Π½ΠΈ дискусии

Ако сакатС Π΄Π° Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΡ€Π°Ρ‚ΠΎΠΊ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°Ρ˜, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС ΠΏΡ€ΠΈΡ˜Π°Π²ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°Π±Π»Π°Ρ‚Π° Π·Π° Π²Π΅Ρ‡Π΅Ρ€Π½ΠΈΠΎΡ‚ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ со молња ΠΈ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ‚ ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€Π°Ρ‚Π΅ Π·Π° ΡˆΡ‚ΠΎ Π±ΠΈΠ»ΠΎ Π½Π° Ρ‚Π΅ΠΌΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π°. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±Ρ€Π· Π²ΠΎΠ²Π΅Π΄ Π²ΠΎ срСдства Π·Π° Π΄Π΅Π·ΠΈΠ½Ρ„Π΅ΠΊΡ†ΠΈΡ˜Π° Π·Π° C++ (Π·Π° Π½Π΅ΠΊΠΎΠΈ Ρ‚ΠΎΠ° бСшС Π½ΠΎΠ²ΠΎ) ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·Π½Π° Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° Π²ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° синусСн Π±Ρ€Π°Π½ ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ само Π΄Π° сС ΡΠ»ΡƒΡˆΠ½Π΅, Π½ΠΎ Π½Π΅ ΠΈ Π΄Π° сС Π²ΠΈΠ΄ΠΈ.

Π”Ρ€ΡƒΠ³ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΅ ΠΏΠ°Π½Π΅Π» Π΄ΠΈΡΠΊΡƒΡΠΈΡ˜Π°Ρ‚Π° β€žΠ‘ΠΎ комисија ΠΎΠ΄ срцС Π΄ΠΎ ΡΡ€Ρ†Π΅β€œ. На сцСната сС Π½Π΅ΠΊΠΎΠΈ Ρ‡Π»Π΅Π½ΠΎΠ²ΠΈ Π½Π° ΠΊΠΎΠΌΠΈΡΠΈΡ˜Π°Ρ‚Π° Π·Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Π΄ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°, Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ€ΠΎΡ‚ Π΅ ΠΊΠ°ΠΌΠΈΠ½ΠΎΡ‚ (ΠΎΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π½ΠΎ - Π·Π° Π΄Π° сС создадС искрСна атмосфСра, Π½ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° β€žΠ±ΠΈΠ΄Π΅Ρ˜ΡœΠΈ Π‘Π• Π“ΠžΠ Π˜β€œ ΠΈΠ·Π³Π»Π΅Π΄Π° посмСшна), ΠΏΡ€Π°ΡˆΠ°ΡšΠ° Π·Π° стандардот ΠΈ ΠΎΠΏΡˆΡ‚Π°Ρ‚Π° визија Π½Π° C++ , Π±Π΅Π· ТСстоки Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠΈ дискусии ΠΈ Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€ΠΈ. Π‘Π΅ испостави Π΄Π΅ΠΊΠ° ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ΠΎΡ‚ содрТи ΠΈ ΠΆΠΈΠ²ΠΈ Π»ΡƒΡ“Π΅ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ сС цСлосно сигурни Π²ΠΎ Π½Π΅ΡˆΡ‚ΠΎ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ Π·Π½Π°Π°Ρ‚ Π½Π΅ΡˆΡ‚ΠΎ.

Π—Π° Ρ™ΡƒΠ±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€ΠΈΡ‚Π΅, Ρ‚Ρ€Π΅Ρ‚ΠΈΠΎΡ‚ настан остана Π½Π° ΡΠ»ΡƒΡ‡Π°Ρ˜ΠΎΡ‚ - ΡΠ΅ΡΠΈΡ˜Π°Ρ‚Π° Π½Π° Π‘ΠžΠ€ β€žΠžΠ΄ΠΈ наспроти C++β€œ. Π—Π΅ΠΌΠ°ΠΌΠ΅ Go lover, Ρ™ΡƒΠ±ΠΈΡ‚Π΅Π» Π½Π° C++, ΠΏΡ€Π΅Π΄ ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ Π½Π° ΡΠ΅ΡΠΈΡ˜Π°Ρ‚Π° Π·Π°Π΅Π΄Π½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΡƒΠ²Π°Π°Ρ‚ 100500 слајдови Π½Π° Ρ‚Π΅ΠΌΠ° (ΠΊΠ°ΠΊΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ со ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π²ΠΎ C++ ΠΈΠ»ΠΈ нСдостатокот Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΠΊΠΈ Π²ΠΎ Go), Π° ΠΏΠΎΡ‚ΠΎΠ° ΠΈΠΌΠ°Π°Ρ‚ ΠΆΠΈΠ²Π° Π΄ΠΈΡΠΊΡƒΡΠΈΡ˜Π° ΠΌΠ΅Ρ“Ρƒ сСбС ΠΈ со ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Π°, Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Π° сС ΠΎΠ±ΠΈΠ΄ΡƒΠ²Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ Π΄Π²Π΅ Π³Π»Π΅Π΄ΠΈΡˆΡ‚Π° одСднаш. Ако Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€ΠΎΡ‚ ΠΏΠΎΡ‡Π½Π΅ Π½Π°Π΄Π²ΠΎΡ€ ΠΎΠ΄ контСкст, ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π΅Π½ΠΈΡ€Π° ΠΈ Π³ΠΈ ΠΏΠΎΠΌΠΈΡ€ΡƒΠ²Π° странитС. Овој Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΡƒΠ²Π° зависност: Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ часа ΠΏΠΎ ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚, само ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΎΠ΄ ΡΠ»Π°Ρ˜Π΄ΠΎΠ²ΠΈΡ‚Π΅ Π±Π΅Π° Π·Π°Π²Ρ€ΡˆΠ΅Π½ΠΈ. ΠšΡ€Π°Ρ˜ΠΎΡ‚ ΠΌΠΎΡ€Π°ΡˆΠ΅ ΠΌΠ½ΠΎΠ³Ρƒ Π΄Π° сС Π·Π°Π±Ρ€Π·Π°.

  • ΠŸΠ°Ρ€Ρ‚Π½Π΅Ρ€ стои

ΠŸΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π° Π±Π΅Π° застапСни Π²ΠΎ салитС - Π½Π° ΡˆΡ‚Π°Π½Π΄ΠΎΠ²ΠΈΡ‚Π΅ Π·Π±ΠΎΡ€ΡƒΠ²Π°Π° Π·Π° Ρ‚Π΅ΠΊΠΎΠ²Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Π½ΡƒΠ΄Π΅Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Π½Ρ‚ΠΈ ΠΈ Π²Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°ΡšΠ΅, ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°Π° ΠΊΠ²ΠΈΠ·ΠΎΠ²ΠΈ ΠΈ ΠΌΠ°Π»ΠΈ Π½Π°Ρ‚ΠΏΡ€Π΅Π²Π°Ρ€ΠΈ, Π° Π½Π°Π³Ρ€Π°Π΄ΡƒΠ²Π°Π° ΠΈ ΡƒΠ±Π°Π²ΠΈ Π½Π°Π³Ρ€Π°Π΄ΠΈ. Π’ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅, Π½Π΅ΠΊΠΎΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π΄ΡƒΡ€ΠΈ ΠΏΠΎΠ½ΡƒΠ΄ΠΈΡ˜Π° Π΄Π° ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ Π½ΠΈΠ· ΠΏΠΎΡ‡Π΅Ρ‚Π½ΠΈΡ‚Π΅ Ρ„Π°Π·ΠΈ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Ρ˜ΡƒΠ°, ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ корисно Π·Π° ΠΎΠ½ΠΈΠ΅ ΠΊΠΎΠΈ дојдоа Π½Π΅ само Π΄Π° ΡΠ»ΡƒΡˆΠ°Π°Ρ‚ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°ΠΈ.

Π’Π΅Ρ…Π½ΠΈΡ‡ΠΊΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈ Π·Π° ΠΈΠ·Π²Π΅ΡˆΡ‚Π°ΠΈΡ‚Π΅

Π‘Π»ΡƒΡˆΠ°Π²ΠΌΠ΅ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°ΠΈ Π΄Π²Π°Ρ‚Π° Π΄Π΅Π½Π°. На ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈ бСшС Ρ‚Π΅ΡˆΠΊΠΎ Π΄Π° сС ΠΈΠ·Π±Π΅Ρ€Π΅ Π΅Π΄Π΅Π½ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°Ρ˜ ΠΎΠ΄ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈΡ‚Π΅ - сС Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ²ΠΌΠ΅ Π΄Π° сС Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌΠ΅ ΠΈ Π΄Π° Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Π½ΠΈΠΌΠ΅ Π·Π½Π°Π΅ΡšΠ΅Ρ‚ΠΎ стСкнато Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΠ°ΡƒΠ·ΠΈΡ‚Π΅. И ΠΏΠΎΠΊΡ€Π°Ρ˜ Ρ‚ΠΎΠ°, сС Ρ‡ΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° ΠΌΠ½ΠΎΠ³Ρƒ Π΅ изоставСно. ОвдС Π±ΠΈ сакалС Π΄Π° Π·Π±ΠΎΡ€ΡƒΠ²Π°ΠΌΠ΅ Π·Π° содрТината Π½Π° Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°ΠΈΡ‚Π΅ ΠΊΠΎΠΈ Π½ΠΈ сС Π½Π°Ρ˜ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΈ

Π˜ΡΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈ Π²ΠΎ C++ Π½ΠΈΠ· ΠΏΡ€ΠΈΠ·ΠΌΠ°Ρ‚Π° Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΈΡ‚Π΅, Π ΠΎΠΌΠ°Π½ Π ΡƒΡΡ˜Π°Π΅Π²

C++ Π ΡƒΡΠΈΡ˜Π°: ΠΊΠ°ΠΊΠΎ сС случи
Π›ΠΈΠ·Π³Π°Ρ˜Ρ‚Π΅ ΠΎΠ΄ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°

Како ΡˆΡ‚ΠΎ сугСрира насловот, Π ΠΎΠΌΠ°Π½ Π³Π»Π΅Π΄Π°Π» Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° со исклучоци ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ LLVM ΠΊΠ°ΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π’ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅, Π·Π° ΠΎΠ½ΠΈΠ΅ ΠΊΠΎΠΈ Π½Π΅ користат Clang Π²ΠΎ ΡΠ²ΠΎΡ˜Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π°, ΠΈΠ·Π²Π΅ΡˆΡ‚Π°Ρ˜ΠΎΡ‚ сè ΡƒΡˆΡ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄Π°Π΄Π΅ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° идСја Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ ΠΊΠΎΠ΄ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ Π±ΠΈ ΠΌΠΎΠΆΠ΅Π» Π΄Π° сС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°. Π’ΠΎΠ° Π΅ Ρ‚Π°ΠΊΠ° Π·Π°Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΈ ΠΈ соодвСтнитС стандардни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π°Π°Ρ‚ Π΅Π΄Π½ΠΈ со Π΄Ρ€ΡƒΠ³ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³Ρƒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС совпаднат.

Π—Π½Π°Ρ‡ΠΈ, Π·Π° Π΄Π° сС справитС со исклучок, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³Ρƒ Ρ€Π°Π±ΠΎΡ‚ΠΈ: ΠΏΠΎΠ²ΠΈΠΊΠ°Ρ˜Ρ‚Π΅ Π³ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚ Π·Π° Ρ€Π°ΠΊΡƒΠ²Π°ΡšΠ΅ (Π°ΠΊΠΎ ΠΈΠΌΠ°) ΠΈΠ»ΠΈ бСсплатни рСсурси Π½Π° Ρ‚Π΅ΠΊΠΎΠ²Π½ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ ΠΈ Π²Ρ€Ρ‚Π΅Ρ‚Π΅ Π³ΠΎ ΠΎΡŸΠ°ΠΊΠΎΡ‚ повисоко. Π‘Π΅Ρ‚ΠΎ ΠΎΠ²Π° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Ρ„Π°ΠΊΡ‚ΠΎΡ‚ Π΄Π΅ΠΊΠ° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ Π΄ΠΎΠ΄Π°Π²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ инструкции Π·Π° ΠΏΠΎΠ²ΠΈΡ†ΠΈ ΠΊΠΎΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ Ρ„Ρ€Π»Π°Π°Ρ‚ исклучоци. Π—Π°Ρ‚ΠΎΠ°, Π°ΠΊΠΎ исклучокот Π²ΡΡƒΡˆΠ½ΠΎΡΡ‚ Π½Π΅ сС ΠΏΠΎΠ΄ΠΈΠ³Π½Π΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° сСпак ќС Π²Ρ€ΡˆΠΈ Π½Π΅ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π΄Π΅Ρ˜ΡΡ‚Π²Π°. Π‘ΠΎ Ρ†Π΅Π» Π½Π΅ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΈ Π½Π°ΠΌΠ°Π»ΠΈ Ρ‚Ρ€ΠΎΡˆΠΎΡ†ΠΈΡ‚Π΅, LLVM ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ хСуристики Π·Π° ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ситуации ΠΊΠΎΠ³Π° ΠΊΠΎΠ΄ΠΎΡ‚ Π·Π° Ρ€Π°ΠΊΡƒΠ²Π°ΡšΠ΅ со исклучоци Π½Π΅ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС Π΄ΠΎΠ΄Π°Π²Π° ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° β€žΠ΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈβ€œ инструкции.

Π“ΠΎΠ²ΠΎΡ€Π½ΠΈΠΊΠΎΡ‚ испитува ΠΎΠΊΠΎΠ»Ρƒ дСсСтина ΠΎΠ΄ Π½ΠΈΠ² ΠΈ Π³ΠΈ ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π° Π΄Π²Π΅Ρ‚Π΅ ситуации ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ ΠΏΠΎΠΌΠ°Π³Π°Π°Ρ‚ Π΄Π° сС Π·Π°Π±Ρ€Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΈ ΠΎΠ½ΠΈΠ΅ ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ ΠΎΠ²ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π½Π΅ сС ΠΏΡ€ΠΈΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ.

Π’Π°ΠΊΠ°, Π ΠΎΠΌΠ°Π½ Π ΡƒΡΡ˜Π°Π΅Π² Π³ΠΈ Π½Π°Π²Π΅Π΄ΡƒΠ²Π° студСнтитС Π΄ΠΎ Π·Π°ΠΊΠ»ΡƒΡ‡ΠΎΠΊ Π΄Π΅ΠΊΠ° ΠΊΠΎΠ΄ΠΎΡ‚ ΡˆΡ‚ΠΎ содрТи Ρ€Π°ΠΊΡƒΠ²Π°ΡšΠ΅ со исклучоци Π½Π΅ ΠΌΠΎΠΆΠ΅ сСкогаш Π΄Π° сС ΠΈΠ·Π²Ρ€ΡˆΠΈ со Π½ΡƒΠ»Π° Π½Π°Π΄Π·Π΅ΠΌΠ½ΠΈ Ρ‚Ρ€ΠΎΡˆΠΎΡ†ΠΈ ΠΈ Π³ΠΎ Π΄Π°Π²Π° слСдниот совСт:

  • ΠΊΠΎΠ³Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π°Π°Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π²Ρ€Π΅Π΄ΠΈ Π΄Π° сС Π½Π°ΠΏΡƒΡˆΡ‚Π°Ρ‚ исклучоцитС Π²ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ;
  • Π°ΠΊΠΎ сè ΡƒΡˆΡ‚Π΅ сС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ исклучоци, Ρ‚ΠΎΠ³Π°Ρˆ сСкогаш ΠΊΠΎΠ³Π° Π΅ ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ€Π΅Π΄ΠΈ Π΄Π° сС Π΄ΠΎΠ΄Π°Π²Π°Π°Ρ‚ noexcept (ΠΈ const) ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ насСкадС Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π° ΡˆΡ‚ΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ повСќС.

Π“Π΅Π½Π΅Ρ€Π°Π»Π½ΠΎ, Π³ΠΎΠ²ΠΎΡ€Π½ΠΈΠΊΠΎΡ‚ Π³ΠΎ ΠΏΠΎΡ‚Π²Ρ€Π΄ΠΈ ставот Π΄Π΅ΠΊΠ° исклучоцитС Π½Π°Ρ˜Π΄ΠΎΠ±Ρ€ΠΎ сС искористуваат Π½Π° ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈΠ»ΠΈ цСлосно сС Π½Π°ΠΏΡƒΡˆΡ‚Π°Π°Ρ‚.

Π‘Π»Π°Ρ˜Π΄ΠΎΠ²ΠΈΡ‚Π΅ ΠΎΠ΄ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°Ρ˜ΠΎΡ‚ сС достапни Π½Π° слСдниот Π»ΠΈΠ½ΠΊ: [β€žΠ˜ΡΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈ ΠΎΠ΄ C++ ΠΏΡ€Π΅ΠΊΡƒ ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΈΠ²ΠΎΡ‚ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ Π½Π° LLVMβ€œ]

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³Π° сладост ΡˆΡ‚ΠΎ Π³ΠΎ ΠΎΠ΄Π²ΠΈΡ‚ΠΊΡƒΠ²Π° ΠΌΠΎΠ·ΠΎΠΊΠΎΡ‚, Ади Π¨Π°Π²ΠΈΡ‚

C++ Π ΡƒΡΠΈΡ˜Π°: ΠΊΠ°ΠΊΠΎ сС случи
Π›ΠΈΠ·Π³Π°Ρ˜Ρ‚Π΅ ΠΎΠ΄ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°

Π•Π΄Π΅Π½ ΠΎΠ΄ ΠΌΠ½ΠΎΠ³ΡƒΡ‚Π΅ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°ΠΈ Π½Π° ΠΎΠ²Π°Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ˜Π° посвСтСна Π½Π° ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈΡ‚Π΅ Π²ΠΎ C++20 бСшС Π·Π°ΠΏΠ°ΠΌΠ΅Ρ‚Π΅Π½ Π½Π΅ само ΠΏΠΎ Π½Π΅Ρ˜Π·ΠΈΠ½Π°Ρ‚Π° Тивописна ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°, Ρ‚ΡƒΠΊΡƒ ΠΈ ΠΏΠΎ Ρ˜Π°ΡΠ½ΠΎΡ‚ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ Π½Π° постоСчкитС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ со Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° (Π·Π° јамка, ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½ΠΈ ΠΏΠΎΠ²ΠΈΡ†ΠΈ).

Ади Π¨Π°Π²ΠΈΡ‚ Π³ΠΎ истакнува слСдново: ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΎ достапнитС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΌΠΈΠ½ΡƒΠ²Π°Π°Ρ‚ Π½ΠΈΠ· Ρ†Π΅Π»Π°Ρ‚Π° ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΡ˜Π° ΠΈ Π½Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Π°Ρ‚ пристап Π΄ΠΎ нСкоја Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½Π° срСдна ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° (ΠΈΠ»ΠΈ Ρ‚ΠΈΠ΅ Π³ΠΎ ΠΏΡ€Π°Π²Π°Ρ‚ Π²ΠΎ ΡΠ»ΡƒΡ‡Π°Ρ˜ Π½Π° ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½ΠΈ ΠΏΠΎΠ²ΠΈΡ†ΠΈ, Π½ΠΎ со Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ Π½Π΅ΠΏΡ€ΠΈΡ˜Π°Ρ‚Π½ΠΈ нСсакани Π΅Ρ„Π΅ΠΊΡ‚ΠΈ, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅ ΠŸΠΎΠ²Ρ€Π°Ρ‚Π΅Π½ ΠΏΠΎΠ²ΠΈΠΊ ΠΏΠ΅ΠΊΠΎΠ») . Π‘Π΅ Ρ‡ΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ° ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, Π½ΠΎ Π΄ΡƒΡ€ΠΈ ΠΈ со Π½ΠΈΠ² сè Π½Π΅ Π΅ Ρ‚ΠΎΠ»ΠΊΡƒ ΠΌΠ°Π·Π½ΠΎ: Π½Π΅ΠΌΠ° Π·Π°Π΅Π΄Π½ΠΈΡ‡ΠΊΠΈ Π²Π»Π΅Π·Π½ΠΈ ΠΈ ΠΈΠ·Π»Π΅Π·Π½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ (ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊ β†’ ΠΊΡ€Π°Ρ˜ наспроти rbegin β†’ rend ΠΈ Ρ‚Π°ΠΊΠ° Π½Π°Ρ‚Π°ΠΌΡƒ), Π½Π΅ Π΅ јасно ΠΊΠΎΠ»ΠΊΡƒ Π΄ΠΎΠ»Π³ΠΎ ќС ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡƒΠ²Π°ΠΌΠ΅? ΠŸΠΎΡ‡Π½ΡƒΠ²Π°Ρ˜ΡœΠΈ ΠΎΠ΄ C++20, ΠΎΠ²ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ сС Ρ€Π΅ΡˆΠ΅Π½ΠΈ!

ΠŸΡ€Π²Π° ΠΎΠΏΡ†ΠΈΡ˜Π°: опсСзи. Π‘ΠΎ Π·Π°Π²ΠΈΡ‚ΠΊΡƒΠ²Π°ΡšΠ΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ Π·Π°Π΅Π΄Π½ΠΈΡ‡ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ Π·Π° ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ ΠΈ ΠΊΡ€Π°Ρ˜ΠΎΡ‚ Π½Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π°, Π° Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ ΠΈ моТност Π·Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΈΡ€Π°ΡšΠ΅. Π‘Π΅Ρ‚ΠΎ ΠΎΠ²Π° Π³ΠΎ олСснува ΠΈΠ·Π³Ρ€Π°Π΄Π±Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π½ΠΈ Ρ†Π΅Π²ΠΊΠΎΠ²ΠΎΠ΄ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Но, Π½Π΅ Π΅ сè Ρ‚ΠΎΠ»ΠΊΡƒ ΠΌΠ°Π·Π½ΠΎ: Π΄Π΅Π» ΠΎΠ΄ Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π·Π° прСсмСтка сС Π½Π°ΠΎΡ“Π° Π²ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° спСцифичСн ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΠΌΠΏΠ»ΠΈΡ†ΠΈΡ€Π° ΠΊΠΎΠ΄ΠΎΡ‚ Π·Π° Ρ€Π°Π·Π±ΠΈΡ€Π°ΡšΠ΅ ΠΈ Π΄Π΅Π±Π°Π³ΠΈΡ€Π°ΡšΠ΅.

C++ Π ΡƒΡΠΈΡ˜Π°: ΠΊΠ°ΠΊΠΎ сС случи
Π›ΠΈΠ·Π³Π°Ρ˜Ρ‚Π΅ ΠΎΠ΄ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°

Па, Π·Π° овој ΡΠ»ΡƒΡ‡Π°Ρ˜, C++20 Π΄ΠΎΠ΄Π°Π΄Π΅ ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½ΠΈ (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡ΠΈΠ΅ ΠΎΠ΄Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ Π΅ слично Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π²ΠΎ Python): ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠ΄Π»ΠΎΠΆΠΈ со Π²Ρ€Π°ΡœΠ°ΡšΠ΅ Π½Π° нСкоја Ρ‚Π΅ΠΊΠΎΠ²Π½Π° врСдност Π΄ΠΎΠ΄Π΅ΠΊΠ° сС Π·Π°Ρ‡ΡƒΠ²Π° срСдната ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°. Π’Π°ΠΊΠ°, постигнувамС Π½Π΅ само Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ со ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π°Π°Ρ‚, Ρ‚ΡƒΠΊΡƒ ΠΈ Π΄Π° ја инкапсулирамС Ρ†Π΅Π»Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΠΎ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½Π°.

Но, ΠΈΠΌΠ° ΠΌΡƒΠ²Π° Π²ΠΎ маст: Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠ΅ сС само Π΄Π΅Π»ΡƒΠΌΠ½ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΈ ΠΎΠ΄ ΠΏΠΎΡΡ‚ΠΎΡ˜Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΈ, Π° исто Ρ‚Π°ΠΊΠ° Π½Π΅ сС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ Ρ‚ΠΎΠ»ΠΊΡƒ ΡƒΡ€Π΅Π΄Π½ΠΎ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π±ΠΈ сакалС: Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сè ΡƒΡˆΡ‚Π΅ Π½Π΅ Π²Ρ€Π΅Π΄ΠΈ Π΄Π° сС користат Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈ ΠΈ ΠΏΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΈ Π²ΠΎ ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½ΠΈΡ‚Π΅. ΠŸΠ»ΡƒΡ, ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° Π·Π° Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½ΠΈ, Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° constexpr, конструкторитС/дСструкторитС ΠΈ Π³Π»Π°Π²Π½ΠΈΡ‚Π΅ Π½Π΅ сС Π²ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΈ Π²ΠΎ ΠΎΠ²Π°Π° листа.

Π’Π°ΠΊΠ°, ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½ΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ°Π²Π°Π°Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π΅Π½ Π΄Π΅Π» ΠΎΠ΄ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ со Сдноставноста Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Π½ΠΎ Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π±Π°Ρ€Π°Π°Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ΅.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈ:

C++ Ρ‚Ρ€ΠΈΠΊΠΎΠ²ΠΈ ΠΎΠ΄ Yandex.Taxi, Антон ΠŸΠΎΠ»ΡƒΡ…ΠΈΠ½

Π’ΠΎ ΠΌΠΎΠΈΡ‚Π΅ профСсионални активности, понСкогаш ΠΌΠΎΡ€Π°ΠΌ Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌ чисто помошни Ρ€Π°Π±ΠΎΡ‚ΠΈ: ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½ΠΈΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ ΠΈ API Π½Π° нСкоја Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Π»ΠΎΠ³ΠΈΡ€Π°ΡšΠ΅ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€ΡΠΈΡ€Π°ΡšΠ΅. Π’ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜, ΠΎΠ±ΠΈΡ‡Π½ΠΎ Π½Π΅ΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±Π° ΠΎΠ΄ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ˜Π°. Но, ΡˆΡ‚ΠΎ Π°ΠΊΠΎ ΠΎΠ²ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ сС користат Π²ΠΎ Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ Π½Π°Ρ˜ΠΏΠΎΠΏΡƒΠ»Π°Ρ€Π½ΠΈΡ‚Π΅ услуги Π½Π° RuNet? Π’ΠΎ Ρ‚Π°ΠΊΠ²Π° ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π°, ќС Ρ‚Ρ€Π΅Π±Π° сами Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°Ρ‚Π΅ Ρ‚Π΅Ρ€Π°Π±Π°Ρ˜Ρ‚ΠΈ Π½Π° час Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈ! Вогаш сСкоја милисСкунда Π΅ Π²Π°ΠΆΠ½Π° ΠΈ Π·Π°Ρ‚ΠΎΠ° Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΏΡ€ΠΈΠ±Π΅Π³Π½ΡƒΠ²Π°Ρ‚Π΅ ΠΊΠΎΠ½ Ρ€Π°Π·Π½ΠΈ Ρ‚Ρ€ΠΈΠΊΠΎΠ²ΠΈ - Π·Π±ΠΎΡ€ΡƒΠ²Π°ΡˆΠ΅ Π·Π° Π½ΠΈΠ² Антон ΠŸΠΎΠ»ΡƒΡ…ΠΈΠ½.

МоТСби Π½Π°Ρ˜ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ бСшС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½ΠΎΡ‚ ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡-Π΄ΠΎ-ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° (pimpl). 

#include <third_party/json.hpp> //PROBLEMS! 
struct Value { 
    Value() = default; 
    Value(Value&& other) = default; 
    Value& operator=(Value&& other) = default; 
    ~Value() = default; 

    std::size_t Size() const { return data_.size(); } 

private: 
    third_party::Json data_; 
};

Π’ΠΎ овој ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π²ΠΎ сакам Π΄Π° сС ослободам ΠΎΠ΄ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Π·Π° заглавија Π½Π° Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ - ΠΎΠ²Π° ќС сС ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π° ΠΏΠΎΠ±Ρ€Π·ΠΎ ΠΈ ќС ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС Π·Π°ΡˆΡ‚ΠΈΡ‚ΠΈΡ‚Π΅ ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈ со ΠΈΠΌΠ΅Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ слични Π³Ρ€Π΅ΡˆΠΊΠΈ. 

Π’ΠΎ Ρ€Π΅Π΄, Π³ΠΎ ΠΏΡ€Π΅Ρ„Ρ€Π»ΠΈΠ²ΠΌΠ΅ #include Π²ΠΎ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° .cpp: Π½ΠΈ Ρ‚Ρ€Π΅Π±Π° Π½Π°ΠΏΡ€Π΅Π΄-Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° Π·Π°Π²ΠΈΡ‚ΠΊΠ°Π½ΠΈΠΎΡ‚ API, ΠΊΠ°ΠΊΠΎ ΠΈ std::unique_ptr. Π‘Π΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ Π°Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π½Π΅ΠΏΡ€ΠΈΡ˜Π°Ρ‚Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ расфрлани Π½ΠΈΠ· ΠΊΡƒΠΏ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΈ Π³Π°Ρ€Π°Π½Ρ†ΠΈΠΈ. std::aligned_storage ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π²ΠΎ сСто ΠΎΠ²Π°. 

struct Value { 
// ... 
private: 
    using JsonNative = third_party::Json; 
    const JsonNative* Ptr() const noexcept; 
    JsonNative* Ptr() noexcept; 

    constexpr std::size_t kImplSize = 32; 
    constexpr std::size_t kImplAlign = 8; 
    std::aligned_storage_t<kImplSize, kImplAlign> data_; 
};

ЕдинствСниот ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: Ρ‚Ρ€Π΅Π±Π° Π΄Π° ја ΠΎΠ΄Ρ€Π΅Π΄ΠΈΠΌΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°Ρ‚Π° ΠΈ ΡƒΡΠΎΠ³Π»Π°ΡΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π·Π° сСкоја ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° - ајдС Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ Π½Π°ΡˆΠΈΠΎΡ‚ шаблон Π·Π° pimpl со ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ , Π΄Π° користимС Π½Π΅ΠΊΠΎΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ врСдности ΠΈ Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ΠΌΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° дСструкторот Π΄Π΅ΠΊΠ° смС ΠΏΠΎΠ³ΠΎΠ΄ΠΈΠ»Π΅ сè ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ‚Ρ€Π΅Π±Π° : 

~FastPimpl() noexcept { 
    validate<sizeof(T), alignof(T)>(); 
    Ptr()->~T(); 
}

template <std::size_t ActualSize, std::size_t ActualAlignment>
static void validate() noexcept { 
    static_assert(
        Size == ActualSize, 
        "Size and sizeof(T) mismatch"
    ); 
    static_assert(
        Alignment == ActualAlignment, 
        "Alignment and alignof(T) mismatch"
    ); 
}

Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ T Π΅ вСќС Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° дСструкторот, овој ΠΊΠΎΠ΄ ќС сС Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΈ Π²ΠΎ Ρ„Π°Π·Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜Π° ќС ја Π΄Π°Π΄Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π°Ρ‚Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° ΠΈ врСдноститС Π·Π° ΡƒΡΠΎΠ³Π»Π°ΡΡƒΠ²Π°ΡšΠ΅ ΡˆΡ‚ΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС внСсат ΠΊΠ°ΠΊΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈ. Π’Π°ΠΊΠ°, ΠΏΠΎ Ρ†Π΅Π½Π° Π½Π° Π΅Π΄Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜Π°, сС ослободувамС ΠΎΠ΄ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π°Ρ‚Π° распрСдСлба Π½Π° Π·Π°Π²ΠΈΡ‚ΠΊΠ°Π½ΠΈΡ‚Π΅ класи, Π³ΠΎ ΠΊΡ€ΠΈΠ΅ΠΌΠ΅ API-Ρ‚ΠΎ Π²ΠΎ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° .cpp со ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π°, Π° исто Ρ‚Π°ΠΊΠ° Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ дизајн кој Π΅ посоодвСтСн Π·Π° ΠΊΠ΅ΡˆΠΈΡ€Π°ΡšΠ΅ ΠΎΠ΄ процСсорот.

Π•Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΈ ΠΏΠ°Ρ€ΡΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π°Π° ΠΏΠΎΠΌΠ°Π»ΠΊΡƒ импрСсивни ΠΈ Π·Π°Ρ‚ΠΎΠ° Π½Π΅ΠΌΠ° Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ спомСнати Π²ΠΎ овој ΠΏΡ€Π΅Π³Π»Π΅Π΄.

Π‘Π»Π°Ρ˜Π΄ΠΎΠ²ΠΈΡ‚Π΅ ΠΎΠ΄ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°Ρ˜ΠΎΡ‚ сС достапни Π½Π° слСдниот Π»ΠΈΠ½ΠΊ: [β€žC++ Ρ‚Ρ€ΠΈΠΊΠΎΠ²ΠΈ ΠΎΠ΄ Π’Π°ΠΊΡΠΈβ€œ]

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π° Ρ‡ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠΈΠΎΡ‚ ΠΊΠΎΠ΄ Π‘Π£Π’Πž, Π‘Ρ˜ΠΎΡ€Π½ Π€Π°Π»Π΅Ρ€

Π’ΠΎ овој Π³ΠΎΠ²ΠΎΡ€, Π‘Ρ˜ΠΎΡ€Π½ Π€Π°Π»Π΅Ρ€ ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π½Π°Ρ‡ΠΈΠ½ΠΈ Π·Π° Π±ΠΎΡ€Π±Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ² стилскиот нСдостаток Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°Ρ‚Π°:

assert(a == IDLE || a == CONNECTED || a == DISCONNECTED);

Π—Π²ΡƒΡ‡ΠΈ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΎ? Π‘ΠΎ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ моќни C++ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π²ΠΎΠ²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎ послСднитС стандарди, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π»Π΅Π³Π°Π½Ρ‚Π½ΠΎ Π΄Π° ја ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Ρ‚Π΅ истата функционалност Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΠΊΠ°Π·Π½Π° Π·Π° ΠΈΠ·Π²Π΅Π΄Π±Π°Ρ‚Π°. Π‘ΠΏΠΎΡ€Π΅Π΄ΠΈ:   

assert(a == any_of(IDLE, CONNECTED, DISCONNECTED));

Π—Π° Π΄Π° сС справитС со нСфиксиран Π±Ρ€ΠΎΡ˜ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, вСднаш Ρ‚Ρ€Π΅Π±Π° Π΄Π° користитС Π²Π°Ρ€ΠΈΡ˜Π°Π΄Π½ΠΈ шаблони ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ Π·Π° ΠΏΡ€Π΅ΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅. Π”Π° прСтпоставимС Π΄Π΅ΠΊΠ° сакамС Π΄Π° ја ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌΠ΅ Сднаквоста Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ со Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΡ‚ state_type Π½Π° enum. ΠŸΡ€Π²ΠΎΡ‚ΠΎ Π½Π΅ΡˆΡ‚ΠΎ ΡˆΡ‚ΠΎ ΠΌΠΈ ΠΏΠ°Ρ“Π° Π½Π° ΡƒΠΌ Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ помошна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° is_any_of:


enum state_type { IDLE, CONNECTED, DISCONNECTED };

template <typename ... Ts>
bool is_any_of(state_type s, const Ts& ... ts) { 
    return ((s == ts) || ...); 
}

Овој срСдСн Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π΅ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΡƒΠ²Π°Ρ‡ΠΊΠΈ. ЗасСга ΠΊΠΎΠ΄ΠΎΡ‚ Π½Π΅ станува ΠΏΠΎΡ‡ΠΈΡ‚Π»ΠΈΠ²:

assert(is_any_of(state, IDLE, DISCONNECTING, DISCONNECTED)); 

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½ΠΎΡ‚ Π±Π΅Π· Ρ‚ΠΈΠΏ ќС ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ ΠΌΠ°Π»ΠΊΡƒ Π΄Π° сС ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°. Π‘ΠΎ Π½ΠΈΠ²Π½Π° помош, ќС Π³ΠΈ прСнСсСмС Π±Ρ€ΠΎΡ˜Π½ΠΈΡ‚Π΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° Π΅Π½ΡƒΠΌΠΎΡ‚ Π½Π° списокот со ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½ΠΎΡ‚: 

template <state_type ... states>
bool is_any_of(state_type t) { 
    return ((t == states) | ...); 
}
	
assert(is_any_of<IDLE, DISCONNECTING, DISCONNECTED>(state)); 

Π‘ΠΎ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° автоматско Π²ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ Π½Π° шаблон ΡˆΡ‚ΠΎ Π½Π΅ Π΅ Ρ‚ΠΈΠΏ (C++17), пристапот Сдноставно сС Π³Π΅Π½Π΅Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π° Π½Π° спорСдбитС Π½Π΅ само со Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°, Ρ‚ΡƒΠΊΡƒ ΠΈ со ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏΠΎΠ²ΠΈ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° сС користат ΠΊΠ°ΠΊΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ Π½Π΅ сС Ρ‚ΠΈΠΏΠΎΠ²ΠΈ:


template <auto ... alternatives, typename T>
bool is_any_of(const T& t) {
    return ((t == alternatives) | ...);
}

ΠŸΡ€Π΅ΠΊΡƒ ΠΎΠ²ΠΈΠ΅ послСдоватСлни ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ°, сС постигнува саканата Ρ‚Π΅Ρ‡Π½Π° синтакса Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ:


template <class ... Ts>
struct any_of : private std::tuple<Ts ...> { 
// полСнимся ΠΈ унаслСдуСм конструкторы ΠΎΡ‚ tuple 
        using std::tuple<Ts ...>::tuple;
        template <typename T>
        bool operator ==(const T& t) const {
                return std::apply(
                        [&t](const auto& ... ts) {
                                return ((ts == t) || ...);
                        },
                        static_cast<const std::tuple<Ts ...>&>(*this));
        }
};

template <class ... Ts>
any_of(Ts ...) -> any_of<Ts ... >;
 
assert(any_of(IDLE, DISCONNECTING, DISCONNECTED) == state);

Π’ΠΎ овој ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎΠ΄ΠΈΡ‡ΠΎΡ‚ Π·Π° Π΄Π΅Π΄ΡƒΠΊΡ†ΠΈΡ˜Π° слуТи Π·Π° ΡΡƒΠ³Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° саканитС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½ΠΎΡ‚ Π·Π° структура Π½Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚, кој Π³ΠΈ Π·Π½Π°Π΅ Ρ‚ΠΈΠΏΠΎΠ²ΠΈΡ‚Π΅ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° конструкторот. 

ΠŸΠΎΠ½Π°Ρ‚Π°ΠΌΡƒ - поинтСрСсно. Π‘Ρ˜ΠΎΡ€Π½ ΡƒΡ‡ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° сС Π³Π΅Π½Π΅Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π° Π΄ΠΎΠ±ΠΈΠ΅Π½ΠΈΠΎΡ‚ ΠΊΠΎΠ΄ Π·Π° спорСдбСни ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π½Π°Π΄Π²ΠΎΡ€ ΠΎΠ΄ ==, Π° ΠΏΠΎΡ‚ΠΎΠ° ΠΈ Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠ°Ρ‚Π΅ΠΌ, карактСристикитС ΠΊΠ°ΠΊΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ‚ no_unique_address (C++20) ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½ΠΎΡ‚ Π²ΠΎ Π»Π°ΠΌΠ±Π΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ (C++20) сС ΠΎΠ±Ρ˜Π°ΡΠ½Π΅Ρ‚ΠΈ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°. (Π”Π°, сСга синтаксата Π»Π°ΠΌΠ±Π΄Π° Π΅ ΡƒΡˆΡ‚Π΅ полСсна Π·Π° Π·Π°ΠΏΠΎΠΌΠ½ΡƒΠ²Π°ΡšΠ΅ - ΠΎΠ²Π° сС Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ послСдоватСлни ΠΏΠ°Ρ€Π° Π·Π°Π³Ρ€Π°Π΄ΠΈ ΠΎΠ΄ ситС Π²ΠΈΠ΄ΠΎΠ²ΠΈ.) ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π΅Ρ‚Π°Π»ΠΈ Π·Π° конструктор навистина ΠΌΠΈ ја Π·Π°Π³Ρ€Π΅Π²Π° Π΄ΡƒΡˆΠ°Ρ‚Π°, Π° Π΄Π° Π½Π΅ Π³ΠΎ спомнувамС ΠΈΠ·Ρ€Π°Π·ΠΎΡ‚ Ρ‚ΠΎΡ€ΠΊΠ° Π²ΠΎ Π½Π°Ρ˜Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ Π½Π° Π»Π°ΠΌΠ±Π΄Π° калкулус.

На ΠΊΡ€Π°Ρ˜ΠΎΡ‚, Π½Π΅ Π·Π°Π±ΠΎΡ€Π°Π²Π°Ρ˜Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΏΠΎΠ»ΠΈΡ€Π°Ρ‚Π΅:

  • Π—Π°ΠΏΠΎΠΌΠ½Π΅Ρ‚Π΅ Π΄Π΅ΠΊΠ° Π»Π°ΠΌΠ±Π΄ΠΈΡ‚Π΅ сС constexpr бСсплатно; 
  • АјдС Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ΠΌΠ΅ ΡΠΎΠ²Ρ€ΡˆΠ΅Π½ΠΎ ΠΏΡ€Π΅ΠΏΡ€Π°ΡœΠ°ΡšΠ΅ ΠΈ Π΄Π° ја ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° Π³Ρ€Π΄Π° синтакса Π²ΠΎ однос Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π²ΠΎ Π»Π°ΠΌΠ±Π΄Π° Π·Π°Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅Ρ‚ΠΎ;
  • Π”Π° ΠΌΡƒ Π΄Π°Π΄Π΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ повСќС моТности Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ со условно noexcept; 
  • АјдС Π΄Π° сС Π³Ρ€ΠΈΠΆΠΈΠΌΠ΅ Π·Π° ΠΏΠΎΡ€Π°Π·Π±ΠΈΡ€Π»ΠΈΠ² ΠΈΠ·Π»Π΅Π· Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π²ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΡ‚Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° СксплицитнитС ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½ΠΈ врСдности Π½Π° Π»Π°ΠΌΠ±Π΄Π°. Ова ќС Π³ΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ повСќС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π΅Π΄ Π²ΡΡƒΡˆΠ½ΠΎΡΡ‚ Π΄Π° сС ΠΏΠΎΠ²ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½ΠΎΡ‚ - Π²ΠΎ Ρ„Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚. 

Π—Π° Π΄Π΅Ρ‚Π°Π»ΠΈ, ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ Π³ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΡ‚Π΅ ΠΎΠ΄ ΠΏΡ€Π΅Π΄Π°Π²Π°ΡšΠ΅Ρ‚ΠΎ: 

ΠΠ°ΡˆΠΈΡ‚Π΅ Π²ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΡ†ΠΈ

ΠΠ°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€Π²ΠΎ учСство Π²ΠΎ C++ Π ΡƒΡΠΈΡ˜Π° бСшС Π½Π΅Π·Π°Π±ΠΎΡ€Π°Π²Π½ΠΎ ΠΏΠΎ ΡΠ²ΠΎΡ˜ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΡ‚Π΅Ρ‚. Π”ΠΎΠ±ΠΈΠ² Π²ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ Π·Π° C++ Π ΡƒΡΠΈΡ˜Π° ΠΊΠ°ΠΊΠΎ искрСн настан, ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ‚Π° ΠΏΠΎΠΌΠ΅Ρ“Ρƒ ΠΎΠ±ΡƒΠΊΠ°Ρ‚Π° ΠΈ ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π²ΠΎ ΠΆΠΈΠ²ΠΎ Π΅ рСчиси Π½Π΅Π·Π°Π±Π΅Π»Π΅ΠΆΠ»ΠΈΠ²Π°. Π‘Γ¨, ΠΎΠ΄ располоТСниСто Π½Π° Π³ΠΎΠ²ΠΎΡ€Π½ΠΈΡ†ΠΈΡ‚Π΅ Π΄ΠΎ Π½Π°Ρ‚ΠΏΡ€Π΅Π²Π°Ρ€ΠΈΡ‚Π΅ ΠΎΠ΄ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΈΡ‚Π΅ Π½Π° настанот, Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ Π·Π° ТСстоки дискусии. Π‘ΠΎΠ΄Ρ€ΠΆΠΈΠ½Π°Ρ‚Π° Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π°, составСна ΠΎΠ΄ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°ΠΈ, ΠΎΠΏΡ„Π°ΡœΠ° ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ ΡˆΠΈΡ€ΠΎΠΊ опсСг Π½Π° Ρ‚Π΅ΠΌΠΈ, Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Ρ˜ΡœΠΈ ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ Π²ΠΎ C++, студии Π½Π° ΡΠ»ΡƒΡ‡Π°Ρ˜ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΈ идСолошки архитСктонски Ρ€Π°Π·ΠΌΠΈΡΠ»ΡƒΠ²Π°ΡšΠ°. Но, Π±ΠΈ Π±ΠΈΠ»ΠΎ Π½Π΅ΠΏΡ€Π°Π²Π΅Π΄Π½ΠΎ Π΄Π° сС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π° ΡΠΎΡ†ΠΈΡ˜Π°Π»Π½Π°Ρ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π° настанот, ΡˆΡ‚ΠΎ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° сС Π½Π°Π΄ΠΌΠΈΠ½Π°Ρ‚ Ρ˜Π°Π·ΠΈΡ‡Π½ΠΈΡ‚Π΅ Π±Π°Ρ€ΠΈΠ΅Ρ€ΠΈ Π²ΠΎ однос Π½Π΅ само со C++.

Им Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌΠ΅ Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° моТноста Π΄Π° учСствувамС Π½Π° Π²Π°ΠΊΠΎΠ² настан!
МоТСби стС ја Π²ΠΈΠ΄Π΅Π»Π΅ ΠΎΠ±Ρ˜Π°Π²Π°Ρ‚Π° Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ‚ΠΎ, ΡΠ΅Π³Π°ΡˆΠ½ΠΎΡΡ‚Π° ΠΈ ΠΈΠ΄Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° C++ Π ΡƒΡΠΈΡ˜Π° Π½Π° Π±Π»ΠΎΠ³ΠΎΡ‚ JUG Ru.

Π’ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌΠ΅ Π·Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅Ρ‚ΠΎ ΠΈ сС Π½Π°Π΄Π΅Π²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€Π΅Ρ€Π°ΡΠΊΠ°ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° настани бСшС корисно!

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€