ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° | cpp, boost, qt
ΠΡΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π΄Π»Ρ ΠΏΠ»ΡΡΠΎΠ²ΠΈΠΊΠ° ΠΈ ΡΠΈΡΠ½ΠΈΠΊΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅. ΠΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΈΠΈ-Π°Π³Π΅Π½ΡΠ°: https://clc.to/tvpmDQ ΠΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅: @tproger_sales_bot ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ: @proglibrary_feeedback_bot Π ΠΠ: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17 #WXSSA
Ko'proq ko'rsatishπ Telegram kanali ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° | cpp, boost, qt analitikasi
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° | cpp, boost, qt (@cppproglib) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 16 793 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 7 706-o'rinni va Rossiya mintaqasida 39 103-o'rinni egallagan.
π Auditoriya koβrsatkichlari va dinamika
Π½Π΅Π²ΡΠ΄ΠΎΠΌΠΎ sanasidan buyon loyiha tez oβsib, 16 793 obunachiga ega boβldi.
30 Oktabr, 2026 dagi oxirgi maβlumotlarga koβra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -68 ga, soβnggi 24 soatda esa -4 ga oβzgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya oβrtacha 11.16% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 4.78% ini tashkil etuvchi reaksiyalarni toβplaydi.
- Post qamrovi: Har bir post oβrtacha 1 874 marta koβriladi; birinchi sutkada odatda 802 ta koβrish yigβiladi.
- Reaksiyalar va oβzaro taβsir: Auditoriya faol: har bir postga oβrtacha 2 ta reaksiya keladi.
- Tematik yoβnalishlar: Kontent c++, Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΡΠ΄Π°Π»ΡΠ½ΠΊΠ°, developer kabi asosiy mavzularga jamlangan.
π Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida taβriflaydi:
βΠΡΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π΄Π»Ρ ΠΏΠ»ΡΡΠΎΠ²ΠΈΠΊΠ° ΠΈ ΡΠΈΡΠ½ΠΈΠΊΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅.
ΠΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΈΠΈ-Π°Π³Π΅Π½ΡΠ°: https://clc.to/tvpmDQ
ΠΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅: @tproger_sales_bot
ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ: @proglibrary_feeedback_bot
Π ΠΠ: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
#W...β
Yuqori yangilanish chastotasi (oxirgi maβlumot 31 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli boβlib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim taβsir nuqtasiga aylantirishini koβrsatadi.
C++ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΈΠΏΠΎΠ² ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π½Π° Π΄Π΅ΡΡΡΠΊΠΈ ΡΡΡΠΎΠΊ. ΠΡΠ»Π°Π΄ΠΊΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΊΠΎΡΠΌΠ°ΡΠΎΠΌ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅.
β
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
C++ Concepts ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΈΠΏΠ°ΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ². ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄ ΡΠ°ΠΌΠΎΠ΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌΡΠΌ ΠΈ Π΄Π°Π΅Ρ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
.
βοΈ ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
#include <concepts>
// ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡ Π΄Π»Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΡ
ΡΠΈΠΏΠΎΠ²
template<typename T>
concept Numeric = std::integral<T> || std::floating_point<T>;
// Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ
template<Numeric T>
T multiply(T a, T b) {
return a * b;
}
int main() {
auto result1 = multiply(5, 10); // OK: int
auto result2 = multiply(3.14, 2.0); // OK: double
// auto result3 = multiply("hello", "world"); // ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Ρ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ
return 0;
}
π³ ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°:
β’ ΠΠΎΠ½ΡΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
β’ Π‘Π°ΠΌΠΎΠ΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ Ρ ΡΠ²Π½ΡΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΊ ΡΠΈΠΏΠ°ΠΌ
β’ Π£Π»ΡΡΡΠ΅Π½Π½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π·Π° ΡΡΠ΅Ρ ΡΠ°Π½Π½Π΅Π³ΠΎ ΠΎΡΡΠ΅Π²Π° Π½Π΅ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΡ
ΡΠΈΠΏΠΎΠ²
β’ ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΎΠ²
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° #Π±ΡΡΡTelegram
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° #ΡΠ²Π΅ΠΆΠ°ΠΊΠΡΠΎ RAG ΡΠ»ΡΡΠ°Π»ΠΈ Π²ΡΠ΅ β ΡΡΠΎ ΡΠΆΠ΅ Π΄Π²Π° Π³ΠΎΠ΄Π° ΡΠ°ΠΌΡΠΉ ΠΌΠ°ΡΡΠΎΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ LLM Π² ΠΏΡΠΎΠ΄Π΅ Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅ΡΠ°. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΠΎΡΠ½ΠΎΡΡΡ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈΠ· ΠΏΡΠΎΡΠ΅ΡΡΠ° Π°ΠΏΠΏΡΡΠ²Π° Π²ΡΠ΄Π°ΡΠΈ LLM, Π° ΡΠ²ΡΠ·ΠΊΠ° Β«Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠ°Ρ LLM + RAG Π½Π°Π΄ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΠΌΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈΒ» ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ½ΡΡΡ ΡΡΠ΅Π²ΠΎΠΆΠ½ΠΎΡΡΡ Β«ΡΡΠΎ Π½Π°ΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠΏΠ°Π΄ΡΡ Π² OpenAIΒ». ΠΡΠ° ΠΈΡΡΠΎΡΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°, ΡΡΠΎ Π½Π° ΡΡΠ½ΠΊΠ΅ Π΅ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ RAG-ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π° Π΄Π°ΠΆΠ΅ Β«ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅Β» ΠΎΠΏΠ΅Π½ΡΠΎΡΡ-ΠΌΠΎΠ΄Π΅Π»ΠΈ (Π΄ΠΎ 5B) ΡΠΆΠ΅ ΠΎΠ±Π·Π°Π²Π΅Π»ΠΈΡΡ ΡΠ²ΠΎΠ΅ΠΉ RAG-Π°ΡΠ΅Π½ΠΎΠΉ: π https://huggingface.co/spaces/aizip-dev/SLM-RAG-ArenaΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π½Π° ΠΊΡΡΡΠ΅ Β«AI-Π°Π³Π΅Π½ΡΡ Π΄Π»Ρ DSΒ» Π½Π°ΡΡΠΈΠΌ ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-Π·Π°Π΄Π°ΡΠΈ. ΠΠ° ΠΏΡΠΎΡΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΊΠ°Π·Π°Π»ΠΈ ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°Π½ΡΡΠΈΠΈ. β‘οΈ Π²ΠΎΡ ΡΡΠΎ ΠΆΠ΄Π΅Ρ ΡΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ ΠΊΡΡΡΠ° Π½Π° Π²ΡΠΎΡΠΎΠΌ: β Π‘ΠΎΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ²ΠΎΠΉ RAG-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π½Π° ΡΠ²ΠΎΠΈΡ Π΄Π°Π½Π½ΡΡ β ΠΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅Π»ΡΠ·Ρ ΠΈΠ·ΠΌΠ΅ΡΡΡΡ Β«Π½Π° Π³Π»Π°Π·Β» β Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌ ΡΡ Π΅ΠΌΡ LLM as a Judge ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ Π΄Π»Ρ Π½Π΅Ρ Π΄Π°ΡΠ°ΡΠ΅Ρ β Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ guardrails ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠΏΠ°ΡΠ°ΡΡ ΠΎΡ Π±ΡΠ΅Π΄Π° β Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° LLM Π½Π΅ Π·Π½Π°Π΅Ρ ΠΎΡΠ²Π΅ΡΠ° β Π‘ΠΌΠΎΡΡΠΈΠΌ Π½Π° Π°Π³Π΅Π½ΡΡΠΊΠΈΠΉ RAG ΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ RAG ΠΊΠ°ΠΊ ΠΏΠ°ΠΌΡΡΡ Π°Π³Π΅Π½ΡΠ° ΠΡΠ»ΠΈ ΠΏΡΠΎΠΏΡΡΡΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π·Π°Π½ΡΡΠΈΠ΅, ΡΠΎ Π²ΠΎΡ ΡΡΡΠ»ΠΎΡΠΊΠ° βοΈΠΠΎ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π½Ρ ΠΎΡΡΠ°Π»ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π΄Π΅Π½Ρ β Π±ΡΠΎΠ½ΠΈΡΡΠΉΡΠ΅ ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ
Doxygen Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ!
β
ΠΠΎΡΡΡΠΏΠ½ΠΎ Π²:
β’ CLion: /** + Enter ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ/ΠΊΠ»Π°ΡΡΠ°
β’ VSCode (Ρ Doxygen Documentation Generator): Ctrl+Alt+D
β’ Visual Studio: /// + Enter ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ
π Π CLion:
β’ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΊΡΡΡΠΎΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ°
β’ ΠΠ²Π΅Π΄ΠΈΡΠ΅ /**
β’ ΠΠ°ΠΆΠΌΠΈΡΠ΅ Enter
β’ IDE Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° #Π±ΡΡΡJava ΠΈ Unity ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΡ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ Unreal Engine Ρ Π΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ, ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ, Blueprints ΠΈ C++.
βΠΠΎΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΊΡΠΎ:
β’ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° UE5
β’ Ρ
ΠΎΡΠ΅Ρ ΠΏΠΎΠ½ΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΡΠΎΠΈΠΌΠΎΡΡΡ Β«ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡΒ»
β’ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄Π²ΠΈΠΆΠΊΠ° Π½Π° C++
π¬ ΠΡΠΎΠ³: Unreal ΠΌΠΎΡΠ½ΡΠΉ, Π½ΠΎ Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ. .
π ΠΡΡΠΎΡΠΈΡ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Rewrite the code below following the Google style guidelines for C++. [ΠΡΡΠ°Π²Ρ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄]βΌοΈ ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΌΠΏΡΠ°: ΠΡΠ»ΠΎ:
class userManager{
public:
int getUserCount(){return userCount;}
void setUserCount(int count){userCount=count;}
private:
int userCount;
};
void ProcessUserData(){
const int maxUsers=100;
userManager um;
for(int i=0;i<maxUsers;i++){
um.setUserCount(i);
}
}
Π‘ΡΠ°Π»ΠΎ (ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Google C++ Style Guide):
class UserManager {
public:
int GetUserCount() const { return user_count_; }
void SetUserCount(int count) { user_count_ = count; }
private:
int user_count_;
};
void ProcessUserData() {
const int MAX_USERS = 100;
UserManager user_manager;
for (int i = 0; i < MAX_USERS; ++i) {
user_manager.SetUserCount(i);
}
}
Π§ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ:
β
Π€ΡΠ½ΠΊΡΠΈΠΈ Π² CamelCase
β
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² snake_case
β
ΠΠΎΠ½ΡΡΠ°Π½ΡΡ Π² UPPER_CASE
β
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΎΡΡΡΡΠΏΡ ΠΈ ΠΏΡΠΎΠ±Π΅Π»Ρ
β
Trailing underscore Π΄Π»Ρ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΡ
ΡΠ»Π΅Π½ΠΎΠ²
βοΈ Π ΠΊΠ°ΠΊΠΈΠΌ ΡΡΠΈΠ»Π΅ΠΌ Π΄Π»Ρ ΠΊΠΎΠ΄Ρ Π²Ρ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ? ΠΠΈΡΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° #Π±ΡΡΡtemplate<typename T>
constexpr T compute() {
if (std::is_constant_evaluated()) {
return compile_time_version<T>();
}
return runtime_version<T>();
}
π’ ΠΠΎΡΠ»Π΅: Π§ΠΈΡΠ°Π΅ΠΌΡΠΉ consteval
template<typename T>
constexpr T compute() {
if consteval {
return compile_time_version<T>();
} else {
return runtime_version<T>();
}
}
βοΈΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ:
β’ ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
β’ Compile-time ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ
β’ ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ lookup-ΡΠ°Π±Π»ΠΈΡ
π‘ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π²Π°ΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
?
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° #Π±ΡΡΡcustom registry Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΡΡΠ°ΠΌΠΈ Qt5/Boost Π½ΡΠΆΠ½ΡΡ
Π²Π΅ΡΡΠΈΠΉ
β’ ΡΠ±ΠΎΡΠΊΠ° standalone ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ
ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ vcpkg
β’ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ½Π°ΡΠ΅ΠΉ ΡΠ΅ΡΠ΅Π· nuget-ΡΠ΅ΡΠ²Π΅Ρ (ΠΊΠ°ΠΊ Π² Conan)
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΠΊΡΡ β ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΊΡΡΠΏΠ½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π³Π΄Π΅ Π½ΡΠΆΠ΅Π½ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ Π²Π΅ΡΡΠΈΡΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ ΠΈΡ
ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ enterprise-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ ΠΆΠ΅ΡΡΠΊΠΈΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΊ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ±ΠΎΡΠΎΠΊ ΠΈ CI/CD ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°ΠΌΠΈ.
ΠΡ ΡΠ·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ vcpkg ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π° ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΡΡΠΎΠ²Π½Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ β ΠΏΡΠΈ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
π Π‘ΡΠ°ΡΡΡ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°