Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС C++. 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 71

Автор Π‘ΠΊΠΎΡ‚Ρ‚ ΠœΠ°ΠΉΠ΅Ρ€Ρ

β€’ tr1::mem_fn – синтаксичСски ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ способ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹. Как tr1::bind ΠΎΠ±ΠΎΠ±Ρ‰Π°Π΅Ρ‚ связыватСли bind1st ΠΈ bind2nd ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C++98, Ρ‚Π°ΠΊ ΠΈ tr1::mem_fn Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ возмоТности mem_fn ΠΈ mem_fn_ref.

β€’ tr1::reference_wrapper – срСдство, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ΄Π°Ρ‚ΡŒ ссылкам большСС сходство с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π’ частности, это Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Π΄ΡƒΡ‚ сСбя Ρ‚Π°ΠΊ, Π±ΡƒΠ΄Ρ‚ΠΎ содСрТат ссылки (Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ).

β€’ Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ случайных чисСл – срСдство, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ прСвосходящСС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ rand, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ C++ унаслСдовал ΠΎΡ‚ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C.

β€’ Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΡ‹ Π›Π°Π³Π΅Ρ€Ρ€Π°, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ БСссСля, ΠΏΠΎΠ»Π½Ρ‹Π΅ эллиптичСскиС ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»Ρ‹ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

β€’ Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, совмСстимыС с C99, – Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ шаблонов, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² C++ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π½ΠΎΠ²Ρ‹Ρ… срСдств ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C99.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² TR1 обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ·ΠΎΡ‰Ρ€Π΅Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ программирования с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ шаблонов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈ ΠΌΠ΅Ρ‚Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ шаблонов (см. ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 48):

β€’ Π₯арактСристики Ρ‚ΠΈΠΏΠΎΠ² (type traits) – Π½Π°Π±ΠΎΡ€ классов для прСдоставлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… Π²ΠΎ врСмя компиляции (см. ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 47). По Π΄Π°Π½Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ T классы-характСристики TR1 ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ·Π½Π°Ρ‚ΡŒ, являСтся Π»ΠΈ ΠΎΠ½ встроСнным, ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ дСструктором, прСдставляСт Π»ΠΈ пустой класс (см. ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 39), ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ нСявно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΈΠΏ U ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. ΠšΠ»Π°ΡΡΡ‹-характСристики TR1 Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ написании спСциализированных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ распрСдСлСния памяти (см. ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 50).

β€’ tr1::result_of – шаблон, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ вывСсти Ρ‚ΠΈΠΏ значСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. ΠŸΡ€ΠΈ написании шаблонов часто Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (шаблона), Π½ΠΎ этот Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ слоТным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². tr1::result_of ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° значСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ функциСй… tr1::result_of ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… мСстах Π² самой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ TR1.

НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ части TR1 (Π² частности, tr1::bind ΠΈ tr1::mem_fn) ΠΎΠ±ΠΎΠ±Ρ‰Π°ΡŽΡ‚ Ρ€Π°Π½Π΅Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, всС ΠΆΠ΅ TR1 содСрТит ΠΈ Π½Π΅ΠΌΠ°Π»ΠΎ совсСм Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй. Ни ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² TR1 Π½Π΅ замСняСт ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…, поэтому унаслСдованный ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ΠžΡ‚Ρ‡Π΅Ρ‚ TR1 сам ΠΏΠΎ сСбС – всСго лишь Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚[4]. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прСимущСствами описанной Π² Π½Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ доступ ΠΊ Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ вмСстС с компиляторами, Π½ΠΎ Π² 2005 Π³ΠΎΠ΄Ρƒ, ΠΊΠΎΠ³Π΄Π° писалась настоящая ΠΊΠ½ΠΈΠ³Π°, вСроятно, Π½Π΅ всС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ Π² TR1 вошло Π² состав ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ Ρƒ вас Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… мСстах: 10 ΠΈΠ· 14 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² TR1 основаны Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…, доступных Π½Π° сайтС Boost (см. ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 55), поэтому это ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ источник TR1-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π― Π³ΠΎΠ²ΠΎΡ€ΡŽ Β«TR1-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉΒ», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ хотя Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ описано Π² TR1, ΠΈ базируСтся Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… Boost, Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Ρ‹Π½Π΅ΡˆΠ½ΠΈΠ΅ вСрсии Boost Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ спСцификации TR1. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ эту Π³Π»Π°Π²Ρƒ, Boost Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ TR1 Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Ρ‚Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вошли Π² TR1 нСзависимо.

Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ TR1-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Boost Π² качСствС Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ€Ρ‹, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° вмСстС с компиляторами Π½Π΅ Π½Π°Ρ‡Π½ΡƒΡ‚ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ собствСнныС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ TR1, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ придСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€ΡŽΠΊ с пространствами ΠΈΠΌΠ΅Π½. ВсС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Boost находятся Π² пространствС ΠΈΠΌΠ΅Π½ boost, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ TR1 Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² пространствС std::tr1. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ компилятору, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ воспринимал ссылки Π½Π° пространство std::tr1 ΠΊΠ°ΠΊ Π½Π° boost. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это дСлаСтся:


namespace std {

namespace tr1 = ::boost; // std::tr1 – псСвдоним для пространства boost

}


ВСхничСски Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ считаСтся Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ объяснСно Π² ΠΏΡ€Π°Π²ΠΈΠ»Π΅ 25, запрСщаСтся Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π² пространство ΠΈΠΌΠ΅Π½ std. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ маловСроятно. Когда ваш компилятор прСдоставит ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ TR1, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ псСвдоним пространства ΠΈΠΌΠ΅Π½. Код, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π° std::tr1, останСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ваТная Ρ‡Π°ΡΡ‚ΡŒ TR1, которая Π½Π΅ базируСтся Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… Boost, β€“ это Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Но Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ доступны ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… источников ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ hash_set, hash_multiset, hash_map ΠΈ hash_ multimap. Π•ΡΡ‚ΡŒ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠΉ шанс, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, поставляСмыС с вашим компилятором, ΡƒΠΆΠ΅ содСрТат эти ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹. Если Π½Π΅Ρ‚, попроситС Π²Π°ΡˆΡƒ Π»ΡŽΠ±ΠΈΠΌΡƒΡŽ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Π½Π°ΠΉΡ‚ΠΈ эти ΠΈΠΌΠ΅Π½Π° (ΠΊΠ°ΠΊ ΠΈ ΠΈΡ… Π°Π½Π°Π»ΠΎΠ³ΠΈ Π² TR1). НавСрняка Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ нСсколько источников – ΠΊΠ°ΠΊ коммСрчСских, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ….

Π§Ρ‚ΠΎ слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ

β€’ Основная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C++ состоит ΠΈΠ· STL, ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² iostream ΠΈ Π»ΠΎΠΊΠ°Π»Π΅ΠΉ. Π’Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° C99.

β€’ TR1 добавляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Β«ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ…Β» ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, tr1::shared_ptr), ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (tr1::function), ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π΅Ρ‰Π΅ 10 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

β€’ ΠžΡ‚Ρ‡Π΅Ρ‚ TR1 сам ΠΏΠΎ сСбС – всСго лишь спСцификация. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прСимущСствами TR1, понадобится рСализация. Одним ΠΈΠ· источников Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² TR1 являСтся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Boost.

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ 55: ΠŸΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Boost

Π’Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ высококачСствСнныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, нСзависимыС ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ компиляторов? Boost ΠΊ вашим услугам. Π’Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ сообщСству Π°ΠΌΠ±ΠΈΡ†ΠΈΠΎΠ·Π½Ρ‹Ρ…, Ρ‚Π°Π»Π°Π½Ρ‚Π»ΠΈΠ²Ρ‹Ρ… программистов Π½Π° C++, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² руслС соврСмСнных прСдставлСний ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ? Boost ΠΊ вашим услугам. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ΄Π½ΠΈΠΌ Π³Π»Π°Π·ΠΊΠΎΠΌ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ C++ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ? Boost ΠΊ вашим услугам.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Boost – это ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ сообщСство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π½Π°Π±ΠΎΡ€ свободно распространяСмых Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π½Π° C++. Π•Π³ΠΎ Web-сайт находится ΠΏΠΎ адрСсу http://boost.org. Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠ»Π°Π΄ΠΊΡƒ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ!

БущСствуСт мноТСство ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΈ Web-сайтов, посвящСнных C++, Π½ΠΎ Boost ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ двумя ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ особСнностями. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ тСсныС связи с ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ΠΎΠΌ ΠΏΠΎ стандартизации C++ ΠΈ способСн Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° Π΅Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Boost Π±Ρ‹Π» основан Ρ‡Π»Π΅Π½Π°ΠΌΠΈ этого ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Π°, ΠΈ участники ΠΎΠ΄Π½ΠΎΠ³ΠΎ часто ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π»Π΅Π½Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΊ этому Boost всСгда ΠΏΡ€ΠΎΠ²ΠΎΠ·Π³Π»Π°ΡˆΠ°Π» ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· своих Ρ†Π΅Π»Π΅ΠΉ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ для тСстирования срСдств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ C++. Одним ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ‚Π°ΠΊΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ стало Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ· 14 Π½ΠΎΠ²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² C++ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ TR1 (см. ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 54), Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… Ρ‚Ρ€Π΅Ρ‚Π΅ΠΉ основаны Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ Π² Boost.

Вторая ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Boost – ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π’ Π΅Π΅ основС Π»Π΅ΠΆΠΈΡ‚ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ΅ обсуТдСниС исходного тСкста всСми заинтСрСсованными Π»ΠΈΡ†Π°ΠΌΠΈ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для Boost, Π½Π°Ρ‡ΠΈΠ½Π°ΠΉΡ‚Π΅ с ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ письма Π² список рассылки для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Boost, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ, насколько Π²Π΅Π»ΠΈΠΊ интСрСс ΠΊ вашСй Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс Π΅Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ обсуТдСния. Π‘ этого начинаСтся Ρ†ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° Web-сайтС называСтся Β«ΠžΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ, ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ, ΠΏΠΎΠ΄Π°Ρ‚ΡŒ Π½Π° рассмотрСниС снова. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ достигнут ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Β».

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

β€’ Насколько Ρ…ΠΎΡ€ΠΎΡˆΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ рСализация?

β€’ ЯвляСтся Π»ΠΈ ΠΊΠΎΠ΄ пСрСносимым ΠΌΠ΅ΠΆΠ΄Ρƒ компиляторами ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами?

β€’ Π‘ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π΅ΠΌΠΈ, для ΠΊΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ людьми, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области?

β€’ ЯвляСтся Π»ΠΈ докумСнтация ясной, ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΠΉ?

ЗамСчания ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² список рассылки Boost, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС ΠΌΠΎΠ³Π»ΠΈ с Π½ΠΈΠΌΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ ΠΈ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° обсуТдСния ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠΊΠ΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚, являСтся Π»ΠΈ ваша Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° принятой, условно принятой Π»ΠΈΠ±ΠΎ ΠΎΡ‚Π²Π΅Ρ€Π³Π½ΡƒΡ‚ΠΎΠΉ.

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ обсуТдСниС позволяСт ΠΎΠ³Ρ€Π°Π΄ΠΈΡ‚ΡŒ Boost ΠΎΡ‚ ΠΏΠ»ΠΎΡ…ΠΎ написанных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌ ΡƒΡΡΠ½ΠΈΡ‚ΡŒ для сСбя, Ρ‡Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² понятиС проСктирования, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ докумСнтирования кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ уровня. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ трСбуСтся Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ рассмотрСния, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΡ… сочтут достойными одобрСния.