ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΈ Π‘++: 42 ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ C++11 ΠΈ C++14
π€ ΠΠ΅ΠΉΠ΅ΡΡ Π‘ΠΊΠΎΡΡ
Π ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΎΡΡΠ°ΠΆΠ΅Π½ Π±Π΅ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΠΏΡΡ Π΅Π΅ Π°Π²ΡΠΎΡΠ° ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π½Π° C++. ΠΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΠ²ΠΈΠ²ΡΠΈΠ΅ΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ°Ρ
C++11 ΠΈ C++14 - ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π½ΠΎΠ²ΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΎΠ²ΡΡ
ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ, ΡΠ°ΠΊ ΡΡΠΎ Π΄Π»Ρ ΠΈΡ
ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ·Π½Π°ΡΡ ΠΎΠ± ΠΈΡ
ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π° C++11, ΠΊΠ°ΠΊ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΡΡΡΠ΅Π½Π½ΠΎΠΌ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ C++98.
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡ
ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΡΠ²ΡΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΎΡΠ½ΠΈ, Π° Π΅ΡΠ΅ Π»ΡΡΡΠ΅ - ΡΡΡΡΡΠΈ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΈ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΌΠ°ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠ°ΠΆΡΡΠΈΡ
ΡΡ ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ°Π½Π½ΡΠΌΠΈ ΠΈ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠΌΠΈ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ Ρ C++98 Π²Ρ ΠΎΠ±Π»Π°Π΄Π°Π΅ΡΠ΅. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΡΡΠ°Π·Π° ΠΠ²ΠΊΠ»ΠΈΠ΄Π° ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π² Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΠΈ Π½Π΅Ρ ΡΠ°ΡΡΠΊΠΈΡ
ΠΏΡΡΠ΅ΠΉ. ΠΠΎ ΠΏΡΠΎΠΉΡΠΈ ΠΏΡΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠΈΠΉ ΠΎ ΡΠΌΠ°Ρ
ΠΈ ΡΡ
Π°Π±Π°Ρ
. Π’Π°ΠΊΠΈΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ»ΡΠΆΠΈΡΡ ΠΊΠ½ΠΈΠ³Π° Π‘ΠΊΠΎΡΡΠ° ΠΠ΅ΠΉΠ΅ΡΡΠ°. Π‘ Π½Π΅ΠΉ Π²Ρ Π½Π΅ Π·Π°Π±Π»ΡΠ΄ΠΈΡΠ΅ΡΡ ΠΈ Π½Π΅ Π·Π°Π±ΡΠ΅Π΄Π΅ΡΠ΅ Π² Π΄Π΅Π±ΡΠΈ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
Π±ΡΠ΄Π΅ΡΠ΅ Π΄ΠΎΠ»Π³ΠΎ ΠΈ ΡΡΡΠ΄Π½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°.
ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΠ½ΠΈΠ³Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΡΠΈΡ Π²Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ° - ΠΎΠ½Π° Π½Π°ΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ
ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. ΠΠΎ ΠΈ ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ - ΠΊΠ½ΠΈΠ³Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΡΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ C++, Π½ΠΎ Π΅ΡΠ΅ ΠΈ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ Π·Π°Π΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ.
ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°Ρ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π·Π°ΡΡΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° - ΠΎΠ½Π° Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΠΌΠ°ΡΡ.
Π Ρ
ΠΎΡΡ ΡΡΠ° ΠΊΠ½ΠΈΠ³Π° Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠ½ΡΡΠ·ΠΈΠ°ΡΡΠΎΠ² ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ², ΠΎΠ½Π° Π΄ΠΎΡΡΠΎΠΉΠ½Π° ΠΌΠ΅ΡΡΠ° Π½Π° ΠΏΠΎΠ»ΠΊΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° - ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Π°, ΡΠ°ΠΊ ΠΈ Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΈΡΠΊΠ°.
ΠΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ C++11 ΠΈ C++14 - ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Ρ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΡΡΠΈΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ ΡΠΈΠΏΠΎΠ² auto, ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ). ΠΠΎΠΏΡΠΎΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ
ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ - ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ»ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Ρ, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎΠ±Ρ ΠΈΡ
Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡ.
ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈΠΌ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ ΠΈ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° Π΄Π°Π½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π°, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ Ρ
ΠΎΡΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ C++11 ΠΈ C++14 - Ρ.Π΅. Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ C++.
Π ΠΊΠ½ΠΈΠ³Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΠΌΡ:
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠ³ΡΡΠ½ΡΡ
ΡΠΊΠΎΠ±ΠΎΠΊ, ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ noexcept, ΠΏΡΡΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ make ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΡΡ
ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ;
Π‘Π²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ std::move, std::forward, rvalue-ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ;
ΠΠ΅ΡΠΎΠ΄Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎΠ½ΡΡΠ½ΡΡ
, ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ
, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ
Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ;
Π§Π΅ΠΌ std::atomic ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ volatile, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠΎΡΠ½ΠΎΡΡΡΡΡ Ρ API ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ
Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ C++;
ΠΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π»ΡΡΡΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² "ΡΡΠ°ΡΠΎΠ³ΠΎ" ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° C++ (Ρ.Π΅. C++98) Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ C++.
ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ C++, ΡΠ»Π΅Π΄ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΡ
ΠΊΠ½ΠΈΠ³ Π‘ΠΊΠΎΡΡΠ° ΠΠ΅ΠΉΠ΅ΡΡΠ°, ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π». ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° Π΄ΠΎΡΡΠΎΠΉΠ½Π° Π·Π°Π½ΡΡΡ ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π½Π° ΠΏΠΎΠ»ΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π½Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ C++.ΠΠ΅ΡΠ΅Π²ΠΎΠ΄: ΠΡΠ°ΡΠΈΠΊΠΎΠ² ΠΠ³ΠΎΡΡ ΠΠ»Π°Π΄ΠΈΠΌΠΈΡΠΎΠ²ΠΈΡΠΠΎΠ΄ ΠΈΠ·Π΄Π°Π½ΠΈΡ: 2016Π€ΠΎΡΠΌΠ°Ρ: pdfΠ―Π·ΡΠΊ: ruΠ Π°Π·ΠΌΠ΅Ρ: 13167 KbΠ‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠΉ: 1326
PDF
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ / Π‘Π΅ΡΠΈΠΈ