ΠΡΡΠ΅Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ C++ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΏΠΎ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ
If you are looking for english version
ΠΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΈ Π½Π΅Π·Π°ΡΠ΅ΠΉΠ»ΠΈΠ²ΠΎ: ΠΎΠ±ΡΡΠ½ΡΠΉ Π΄Π΅ΡΡΡΠΈΠΊΠ»Π°ΡΡΠ½ΠΈΠΊ ΡΠ²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π·Π°Π΄Π°ΡΠΊΠ°ΠΌΠΈ, ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π±ΡΡΡΡΡΠΌΠΈ. Π£Π·Π½Π°Π΅Ρ ΠΎ ΡΠ·ΡΠΊΠ΅ C++, ΡΡΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, ΡΠ΅ΡΠ°Π΅Ρ Π·Π°Π΄Π°ΡΠΈ Ρ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄Π°, ΠΈ Π³ΠΎΡΡ Π½Π΅ Π·Π½Π°Π΅Ρ...
Π ΡΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, Π³Π΄Π΅-ΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΌΠΈΡΠ΅, ΠΌΠ°ΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ ΡΡΠ³Π°ΡΡ ΡΠΎ ΠΎΠ΄Π½ΠΈ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠΎ ΡΠ°ΠΌΡΠΌ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ: Π½Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½Π΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡΠ½ΠΈΡ Π±ΡΠΊΠ² ΠΏΠΈΡΠ°ΡΡ, ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅... ΠΠΎ Π΅ΡΡΡ ΡΠ·ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ³Π°ΡΡ Π·Π° Π²ΡΠ΅ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π·Π° ΡΠ°ΠΊΡΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΡ ΠΈ ΡΠ°ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΡ Π²Π΅ΡΡ ΠΊΠ°ΠΊ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (undefined behavior, UB).
Π‘ΠΏΡΡΡΡ Π»Π΅Ρ ΠΏΡΡΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΡ Π½Π°Ρ ΠΏΡΠΎΡΡΠΎΠΉ Π΄Π΅ΡΡΡΠΈΠΊΠ»Π°ΡΡΠ½ΠΈΠΊ, Π³ΠΎΡΡ Π½Π΅ Π²ΠΈΠ΄Π°Π²ΡΠΈΠΉ Π² ΠΌΠΎΡΠ΅ ΠΎΡΠΎΡΠ²Π°Π½Π½ΡΡ ΠΎΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΡΠ·Π½Π°Π΅Ρ, ΡΡΠΎ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π³ΠΎΡΡΡΠΎ Π½Π΅Π»ΡΠ±ΠΈΠΌΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ», ΠΎΡΡΠ°Π΅ΡΡΡ ΠΈ Π±ΡΠ΄Π΅Ρ Π΅Π³ΠΎ C++.
Π ΠΏΠΎΡΠΎΠΌ Π΅ΡΠ΅ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π»Π΅Ρ ΠΎΠ½ Π½Π°ΡΠΊΠ½Π΅ΡΡΡ Π½Π° ΡΠ°ΠΌΡΠ΅ ΠΊΠΎΡΠΌΠ°ΡΠ½ΡΠ΅ ΠΈ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΡΠ΅ ΡΠΆΠ°ΡΡ, ΠΏΠΎΠ΄ΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π½Π° C++ ΠΏΠΎΡΡΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Ρ. Π’Π°ΠΊ ΠΈ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΡΠ° ΡΠ΅ΡΠΈΡ Π·Π°ΠΌΠ΅ΡΠΎΠΊ, ΡΠΎΠ±ΠΈΡΠ°ΡΡΠ°Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΡΠ²ΡΠ°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΠΊΠ½ΡΡΡΡΡ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡΡ Π·Π°Π΄Π°Ρ.
Β«ΠΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ β ΠΊΠΎΡΠ΅Π½Ρ Π²ΡΠ΅Ρ Π·ΠΎΠ»Β» (Π. ΠΠ½ΡΡ ΠΈΠ»ΠΈ Π. Π₯ΠΎΠ°Ρ β Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠΌΠΎΡΡΠΈΡΠ΅). Π―Π·ΡΠΊ Π‘++, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΠΊΠ°Ρ ΡΠΎΠΌΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ: ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ Π² C++ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΡΠ²ΡΠ·Π°Π½Ρ Ρ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ, Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π² ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠΌ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΈΡΠ°ΡΡ Π½Π° C++ ΠΊΠΎΠ΄, Π² ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Ρ ΠΎΡΠΈΡΠ΅ Π±ΡΡΡ Ρ ΠΎΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ, ΡΡΠΎΠΈΡ Π·Π½Π°ΡΡ ΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ°ΠΌΠ½Π΅ΠΉ ΠΈ Π»ΠΎΠ²ΠΊΠΎ ΡΠ°ΡΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΌΠΈΠ½ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ ΡΠ·ΡΠΊΠ°, Π΅Π³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅, ΠΈ Π²ΡΡΡΠ΅ΡΠΊΠΈ ΠΈΡ ΠΈΠ·Π±Π΅Π³Π°ΡΡ. ΠΠ½Π°ΡΠ΅ Π²Π°ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ Π²ΠΎΠ»Π΅ ΡΠ»ΡΡΠ°Ρ.
Π ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ Ρ ΡΠΎΠ±ΡΠ°Π» ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΊΠ°ΠΊ Π² ΠΊΠΎΠ΄Π΅ Π½Π° C ΠΈ C++ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΊΠ½ΡΡΡΡΡ Π½Π° Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅, Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅ ΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π Ρ ΠΎΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΠΊΡΡ ΠΊΠ½ΠΈΠ³ΠΈ Π²ΡΡ ΠΆΠ΅ Π½Π° Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π²Π΅ΡΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅, Π½ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅.
ΠΠ°ΠΆΠ½ΠΎ: ΡΡΠΎΡ ΡΠ±ΠΎΡΠ½ΠΈΠΊ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π±Π½ΡΠΌ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠ·ΡΠΊΡ ΠΈ ΡΠ°ΡΡΡΠΈΡΠ°Π½ Π½Π° ΡΠ΅Ρ , ΠΊΡΠΎ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Ρ C++, ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ UB ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ
- ΠΠ°ΠΊ ΠΈΡΠΊΠ°ΡΡ UB?
- Π¦Π΅Π»ΡΠ΅ ΠΈ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΈΡΠ»Π°
- ΠΠ°ΡΡΡΠ΅Π½ΠΈΡ lifetime ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
- ΠΠΈΡΡΡΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ β ΠΎΠ±ΡΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΈ
- ΠΠ²ΡΠΎΠ²ΡΠ²ΠΎΠ΄ ΡΠΈΠΏΠΎΠ² ΠΈ Π²ΠΈΡΡΡΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ
- std::string_view
- Range-based for
- CΠ°ΠΌΠΎΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
- std::vector ΠΈ ΠΈΠ½Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΡΡΡΠ»ΠΎΠΊ
- ΠΠΈΡΡΡΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π² Π»ΡΠΌΠ±Π΄Π°Ρ
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ
- ΠΠ½Π΅Π·Π°ΠΏΠ½Π°Ρ ΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ
- Proxy-ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΡΡΡΠ»ΠΊΠΈ
- use-after-move
- lifetime extension
- C++20 direct initialization ΠΈ ΡΡΡΠ»ΠΎΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ
- Π’Π΅ΡΠ½Π°ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
- ΠΠΎΡΡΡΠΈΠ½Ρ ΠΈ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ
- (ΠΠ΅)ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
- Most Vexing Parse
- Const
- std::move
- ΠΠΎΡΠ΅ΡΡΠ½Π½ΡΠΉ return
- ΠΠ»Π»ΠΈΠΏΡΠΈΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²
operator ,- function-try-block
- ΠΡΡΡΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΠΈΠΏΡ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°
- (ΠΠ΅)ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
- ΠΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠΉ operator[]
- ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π² C++20
- ΠΡΡΠΈΠ±ΡΡ [[assume]]
- ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ = default
- implicit bool
- Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
- NULL-ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ
- ΠΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ std::shared_ptr
- shared_from_this
- ΠΏΠΎΡΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°
- std::aligned_storage
- ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
- std::ranges::views
operator[]Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²- std::enable_if/std::void_t
- ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²
- std::uniform_int_distribution
- std::ranges::transform | filter
- vector::reserve ΠΈ vector::resize
- std::function
- std::forward
- ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΈΠΊΠ»Ρ
- Π Π΅ΠΊΡΡΡΠΈΡ
- ΠΠΎΠΆΠ½ΡΠΉ noexcept
- ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠ°
- Π‘Π±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°
- RAII vs (N)RVO
- Π Π°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ nullptr
- Static initialization order fiasco
- Static inline
- ODR violation
- ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°
- Π’ΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΈ ABI
- ΠΠ΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
- Ranges. Unreachable sentinel
- ΠΠ΅Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
- Variable length array
- ODR violation ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
- ΠΠ»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
- ΠΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ
- ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ
Π ΡΠ΅ΠΊΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ, Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΠΈ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ°ΡΠ΅Π²Π°ΡΡ. ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ: ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈ issue ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ pull request.
ΠΠ΅Π³Π°ΡΡ Π·Π° Π²Π°ΠΌΠΈ ΠΈ ΡΡΠ΄ΠΈΡΡΡΡ Π°Π²ΡΠΎΡ ΡΠ΅Π³ΠΎ ΡΠ±ΠΎΡΠ½ΠΈΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ, Π½ΠΎ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ:
ΠΠ° ΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ, ΡΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅.
ΠΠ»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π½Π°Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ³Π»Π°ΡΠΈΠ΅ Π°Π²ΡΠΎΡΠ°
ΠΠ΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΠ»Π°ΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ ΠΈΠ»ΠΈ Π²Π·ΠΈΠΌΠ°ΡΡ ΠΏΠ»Π°ΡΡ Π·Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΠΈΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌ.
Π§Π΅ΡΠ½ΠΎΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, "Π ΡΠΆΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΠΎΠ³Π½Π΅Π²ΠΎΠΉ ΠΌΠΎΡΠΈ, ΡΡΠΎΠ±Ρ Π½Π° Π½Π΅ΠΌ ΠΏΠΎΠ²Π΅ΡΠΈΡΡΡΡ", ΠΊΠ°ΠΊ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ ΠΈΡΠΊΡΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ, Π±ΡΠ»ΠΎ ΡΠ΄Π°ΠΊΠΈΠΌ ΡΠ΅Π²Π΅ΡΠ°Π½ΡΠΎΠΌ Π² ΡΡΠΎΡΠΎΠ½Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ (Π½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡ ΠΎ ΡΠΎΡΡΠ°ΡΠΈΠ²ΡΠ΅Π³ΠΎΡΡ) ΡΠ±ΠΎΡΠ½ΠΈΠΊΠ° ΠΏΠΎ C++ "ΠΠ΅ΡΠ΅Π²ΠΊΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΡΠ΅Π»ΠΈΡΡ ΡΠ΅Π±Π΅ Π² Π½ΠΎΠ³Ρ" ΠΎΡ ΠΠ»Π°Π½Π° ΠΠΎΠ»ΡΠ±Π°. ΠΠΎ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΌΡ ΠΆΠΈΠ²Π΅ΠΌ Π² Π½Π΅ΠΆΠ½ΠΎΠΌ ΠΌΠΈΡΠ΅ ΠΏΠΎΠ±Π΅Π΄ΠΈΠ²ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠ°Π½ΠΆΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°Π΄Π·ΠΎΡΠ½ΡΡ ΠΎΡΠ³Π°Π½ΠΎΠ², ΡΠΎ ΠΈ Π΄Π΅Π»ΠΎ ΡΡΡΠ΅ΠΌΡΡΠΈΡ ΡΡ ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΡ ΡΠ΅Π³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π°ΡΠΈΡΠΈΡΡ.
ΠΠ²ΡΠΎΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΎΡΠ΅Π½Ρ Π±Ρ Ρ ΠΎΡΠ΅Π» Π·Π°ΡΠΈΡΠΈΡΡ Π²ΡΠ΅Ρ ΠΎΡ C++, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΠΌΡ ΠΈ ΡΠ»ΡΠΆΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΠ±ΠΎΡΠ½ΠΈΠΊ, Π½ΠΎ Ρ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈ ΠΏΠ΅ΡΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° Π² ΡΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
Copyright 2020-2024 Dmitry Sviridkin