#Π²ΠΈΠ΄Π΅ΠΎΠ·Π°ΠΏΠΈΡΠΈ #ΠΏΠ»ΡΡΠΎΡΠ΅ΡΠ²Π΅ΡΠ³
Π C++ ΠΌΠΎΠ΄Π΅Π»Ρ Π°Π»ΠΈΠ°ΡΠΈΠ½Π³Π° ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ»ΠΎΡΠΌΠΈ:
1) strict aliasing,
2) ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² (TBAA, noalias, alias scopes),
3) Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ __restrict.
ΠΠΎΠΊΠ»Π°Π΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ΅Π³ΠΎΠ΄Π½Ρ β ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ (GCC, Clang, MSVC) ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ± Π°Π»ΠΈΠ°ΡΠΈΠ½Π³Π΅ ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠΌ ΠΈ, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ.
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΠΊΠ΅Ρ ΡΠ΄Π΅Π»ΠΈΠ» ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡΠΌ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ C++ (restrict-like ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ°, alias sets, ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ span/mdspan, pointer provenance), Π² Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° Π½Π° C++23, Π²ΡΠ΄Π΅ΡΠΆΠΊΠΈ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ° C++, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ LLVM IR Π΄Π»Ρ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ°.
ΠΠ»Π°Π΄ΠΈΡΠ»Π°Π² ΠΠ΅Π»ΠΎΠ² β ΠΠ»ΠΈΠ°ΡΠΈΠ½Π³ ΠΏΠ°ΠΌΡΡΠΈ Π² C++: ΠΏΡΠΎΡΠ»ΠΎΠ΅, Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΠΈ Π±ΡΠ΄ΡΡΠ΅Π΅
π YouTube | πΊ VK ΠΠΈΠ΄Π΅ΠΎ
Post #95
70
Forwarded from C++ Russia β ΠΊΠ°Π½Π°Π» ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ
YouTube ΠΠ»Π°Π΄ΠΈΡΠ»Π°Π² ΠΠ΅Π»ΠΎΠ² β ΠΠ»ΠΈΠ°ΡΠΈΠ½Π³ ΠΏΠ°ΠΌΡΡΠΈ Π² C++: ΠΏΡΠΎΡΠ»ΠΎΠ΅, Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΠΈ Π±ΡΠ΄ΡΡΠ΅Π΅ ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ C++ Russia: https://jrg.su/nbdpQS β β ΠΠ»ΠΈΠ°ΡΠΈΠ½Π³ β ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ Π²Π°ΠΆΠ½ΡΡ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌΡΡ ΡΠ΅ΠΌ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π°Π»ΠΈΠ°ΡΠΈΠ½Π³Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ β¦- π 1
- π 1