π₯ RTTR (Run-Time Type Reflection) Π² C++ β ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ°Ρ
, ΠΈΡ
ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ
, ΠΌΠ΅ΡΠΎΠ΄Π°Ρ
ΠΈ Π΄ΡΡΠ³ΠΈΡ
Π°ΡΠΏΠ΅ΠΊΡΠ°Ρ
Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
π ΠΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ RTTR:
π ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ°Ρ
: ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ»Π°ΡΡΠ°Ρ
, ΠΈΡ
Π±Π°Π·ΠΎΠ²ΡΡ
ΠΊΠ»Π°ΡΡΠ°Ρ
, ΠΌΠ΅ΡΠΎΠ΄Π°Ρ
, ΠΏΠΎΠ»ΡΡ
ΠΈ ΠΈΡ
ΡΠΈΠΏΠ°Ρ
.
π ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²: RTTR ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π½Π°ΡΡ ΠΈΡ
ΡΠΈΠΏΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
π ΠΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΠ»ΡΠΌ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ: ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΠ»ΡΠΌ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ
, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡ ΠΈΠ»ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
π ΠΡΡΠΈΠ±ΡΡΡ: ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π°ΡΡΠΈΠ±ΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΠΈ ΠΈΡ
ΡΠ»Π΅Π½Π°ΠΌ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅.
π Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ: Π‘ ΠΏΠΎΠΌΠΎΡΡΡ RTTR Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π³Π΄Π΅ Π½ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°
βͺοΈGithub@cpluspluc