ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° | cpp, boost, qt
ΠΡΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π΄Π»Ρ ΠΏΠ»ΡΡΠΎΠ²ΠΈΠΊΠ° ΠΈ ΡΠΈΡΠ½ΠΈΠΊΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅. ΠΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΈΠΈ-Π°Π³Π΅Π½ΡΠ°: https://clc.to/tvpmDQ ΠΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅: @tproger_sales_bot ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ: @proglibrary_feeedback_bot Π ΠΠ: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17 #WXSSA
Show moreπ Analytical overview of Telegram channel ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° | cpp, boost, qt
Channel ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° | cpp, boost, qt (@cppproglib) in the Russian language segment is an active participant. Currently, the community unites 16 802 subscribers, ranking 7 723 in the Technologies & Applications category and 39 130 in the Russia region.
π Audience metrics and dynamics
Since its creation on Π½Π΅Π²ΡΠ΄ΠΎΠΌΠΎ, the project has demonstrated rapid growth, gathering an audience of 16 802 subscribers.
According to the latest data from 28 October, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -64 over the last 30 days and by -6 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 11.50%. Within the first 24 hours after publication, content typically collects 4.72% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 933 views. Within the first day, a publication typically gains 793 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 2.
- Thematic interests: Content is focused on key topics such as c++, Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΡΠ΄Π°Π»ΡΠ½ΠΊΠ°, developer.
π Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
βΠΡΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π΄Π»Ρ ΠΏΠ»ΡΡΠΎΠ²ΠΈΠΊΠ° ΠΈ ΡΠΈΡΠ½ΠΈΠΊΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅.
ΠΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΈΠΈ-Π°Π³Π΅Π½ΡΠ°: https://clc.to/tvpmDQ
ΠΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅: @tproger_sales_bot
ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ: @proglibrary_feeedback_bot
Π ΠΠ: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
#W...β
Thanks to the high frequency of updates (latest data received on 29 October, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
filter | transform | take ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ, Π»Π΅Π½ΠΈΠ²ΡΠΉ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π²ΠΌΠ΅ΡΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
ΡΠΈΠΊΠ»ΠΎΠ² ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π²Π΅ΠΊΡΠΎΡΠΎΠ². β
ΠΠΌΠ΅ΡΡΠΎ ΡΡΡΠ½ΠΎΠ³ΠΎ std::transform/std::copy_if ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ lifetime β ΡΠ΅ΠΏΠΎΡΠΊΠΈ std::views::filter | std::views::transform, ΠΊΠ°ΠΊ Π² bash, Π½ΠΎ type-safe ΠΈ Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ
Π°Π»Π»ΠΎΠΊΠ°ΡΠΈΠΉ. β
βοΈ ΠΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ:
β’ C++20 Ranges in Practice β Tristan Brindle β ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΡΠΈΠΊΠ»Π°ΠΌΠΈ Π² ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ pipelines std::views::filter | transform | take ΠΏΠ»ΡΡ ΡΠ°Π·Π±ΠΎΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ
β’ New Algorithms in C++23 β ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ: Π½ΠΎΠ²ΡΠ΅ rangeβΠ°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ranges::views ΠΈ Π²Π·Π³Π»ΡΠ΄ Π½Π° C++ ΠΊΠ°ΠΊ ΡΠ·ΡΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
β’ Introduction to C++20 Ranges and Composability β Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² C++ Ranges ΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ranges Π² production? ΠΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΠ΅ΡΠΈΠ»ΠΈΡΡ ΡΠ»Π΅Π³Π°Π½ΡΠ½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ?
πΉΠΡΡΡ Β«ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Β»
πΉ ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°
πΉ Π‘Π°ΠΉΡ ΠΠΊΠ°Π΄Π΅ΠΌΠΈΠΈ πΉΠ‘Π°ΠΉΡ Proglib
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
#Π»ΠΈΠ½ΠΊΠ΅Ρ_ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ&smart_ptr Π² C API, Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ. Π‘ΠΏΠΎΠΉΠ»Π΅Ρ: ΡΡΠΎ undefined behavior, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠΎΠ»ΡΠ° ΡΠ»ΠΎΠΌΠ°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄.
π ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΠ°ΠΌΡΡΠΈ
std::unique_ptr<T> β ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ T*. ΠΠ½ΡΡΡΠΈ ΠΎΠ½ Ρ
ΡΠ°Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ + deleter. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ CreateObject(&my_ptr), C ΡΡΠ½ΠΊΡΠΈΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π°Π΄ΡΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ Π² ΠΏΠ°ΠΌΡΡΡ smart pointer, ΠΌΠΈΠ½ΡΡ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
unique_ptr<Obj> ptr = make_unique<Obj>(); // ptr Π²Π»Π°Π΄Π΅Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ
CreateObject(&ptr); // UB! Π‘ΡΠ°ΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΡΠΊ
πΏ ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ out_ptr
std::out_ptr(ptr) ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ proxy-ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ½:
β’ ΠΡΠ·ΡΠ²Π°Π΅Ρ ptr.reset() ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ (ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΡΡΠ°ΡΡΠΉ ΡΠ΅ΡΡΡΡ)
β’ ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π΄ΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ T** Π΄Π»Ρ C ΡΡΠ½ΠΊΡΠΈΠΈ
β’ ΠΡΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² smart pointer
auto ptr = make_unique<Obj>();
CreateObject(std::out_ptr(ptr)); // ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ!
π‘ ΠΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ proxy Ρ
ΡΠ°Π½ΠΈΡ Π΄Π²Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ: Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ T* Π΄Π»Ρ C API ΠΈ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ smart pointer. ΠΠ΅ΡΡΡΡΠΊΡΠΎΡ proxy Π²ΡΠ·ΡΠ²Π°Π΅Ρ ptr.reset(temp_ptr).
βοΈΠΡΠ°ΠΊΡΠΈΠΊΠ°: Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ out_ptr Π΄Π»Ρ output-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² C API.
πΉΠΡΡΡ Β«ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Β»
πΉ ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°
πΉ Π‘Π°ΠΉΡ ΠΠΊΠ°Π΄Π΅ΠΌΠΈΠΈ πΉΠ‘Π°ΠΉΡ Proglib
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
#ΠΏΠΎΠ΄_ΠΊΠ°ΠΏΠΎΡΠΎΠΌstd::ranges::iota, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΡΠ»ΡΡΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΡΠ°ΡΠΎΠ³ΠΎ std::iota. ΠΠΎ ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ API-ΠΎΠ±ΡΡΡΠΊΠ° β ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π±ΠΎΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΉ.
βοΈ std::iota β eager Π°Π»Π³ΠΎΡΠΈΡΠΌ:
std::iota(v.begin(), v.end(), 0);
ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° Π²Π΅ΠΊΡΠΎΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½.
βοΈ ranges::iota β Π»Π΅Π½ΠΈΠ²Π°Ρ view:
auto view = std::views::iota(0, 10);
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ view β Π»ΡΠ³ΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ½ΡΡΡΠΈ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄Π²Π° ΠΏΠΎΠ»Ρ:
struct iota_view {
T current_;
T bound_;
T operator*() const { return current_; }
void operator++() { ++current_; }
};
ΠΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ! View Π½Π΅ Ρ
ΡΠ°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΎΠ½ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΈΡ
ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ. ΠΡΠΎ O(1) ΠΏΠΎ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΡΠΈΠ² O(N) Π΄Π»Ρ std::iota.
π‘ ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ views:
auto result = views::iota(0, 100)
| views::filter([](int x) { return x % 2 == 0; })
| views::take(10);
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ inline'ΠΈΡ Π²ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡ
ΠΎΠ΄. ΠΠ΅Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², Π½Π΅Ρ Π»ΠΈΡΠ½ΠΈΡ
Π°Π»Π»ΠΎΠΊΠ°ΡΠΈΠΉ. ΠΡΠΎΡΡΠΎ ΡΡΡΡΡΠΈΠΊ ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ.
βοΈΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠ²ΠΎΠ΄: Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ β std::iota. ΠΡΠ»ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ β ranges::iota. Π Π°Π·Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
Π·Π°Π΄Π°Ρ.
βοΈRanges β ΡΡΠΎ Π½Π΅ Π·Π°ΠΌΠ΅Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², ΡΡΠΎ Π΄ΡΡΠ³Π°Ρ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°.
πΉ ΠΡΡΡ Β«ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Β»
πΉ ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°
πΉ Π‘Π°ΠΉΡ ΠΠΊΠ°Π΄Π΅ΠΌΠΈΠΈπΉΠ‘Π°ΠΉΡ Proglib
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
#ΠΏΠΎΠ΄_ΠΊΠ°ΠΏΠΎΡΠΎΠΌClang-Tidy ΡΠΌΠ΅Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠ΅Π· ΡΠ»Π°Π³ --fix. ΠΠ²ΡΡΠΈΡ Π·Π°ΠΌΠ°Π½ΡΠΈΠ²ΠΎ, Π½ΠΎ ΡΡΠΎ ΠΌΠΈΠ½Π° Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ raw pointer Π½Π° smart pointer, Π½ΠΎ Π½Π΅ ΡΡΡΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ Π²Π»Π°Π΄Π΅Π½ΠΈΡ Π² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅. ΠΠ»ΠΈ Β«ΠΈΡΠΏΡΠ°Π²ΠΈΡΒ» ΡΠΈΠΊΠ», ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π»ΠΎΠ³ΠΈΠΊΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Auto-fix Ρ
ΠΎΡΠΎΡ Π΄Π»Ρ ΠΌΠ΅Ρ
Π°Π½ΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: Π·Π°ΠΌΠ΅Π½Π° NULL Π½Π° nullptr, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ override, ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ΠΎΠ² β ΡΠΎΠ»ΡΠΊΠΎ manual review ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠΎΠ»ΠΎΡΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: Π·Π°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ --fix Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, ΠΏΡΠΎΠ³ΠΎΠ½ΡΠΉΡΠ΅ Π²ΡΠ΅ ΡΠ΅ΡΡΡ, Π΄Π΅Π»Π°ΠΉΡΠ΅ code review Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
π Π Π²Ρ Π΄ΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠ½ΡΡ?
πΉ ΠΡΡΡ Β«ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Β»
πΉ ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°
πΉ Π‘Π°ΠΉΡ ΠΠΊΠ°Π΄Π΅ΠΌΠΈΠΈπΉΠ‘Π°ΠΉΡ Proglib
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
#ΠΌΠ΅ΠΆΠ΄ΡΡΠΎΠ±ΠΎΠΉΡΠΈΠΊ