Библиотека C/C++ разработчика | cpp, boost, qt
Все самое полезное для плюсовика и сишника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/d6cd2932 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17 #WXSSA
Больше📈 Аналитический обзор Telegram-канала Библиотека C/C++ разработчика | cpp, boost, qt
Канал Библиотека C/C++ разработчика | cpp, boost, qt (@cppproglib) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 23 192 подписчиков, занимая 5 866 место в категории Технологии и приложения и 28 983 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 23 192 подписчиков.
Согласно последним данным от 05 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -10 788, а за последние 24 часа — -8, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 6.89%. В первые 24 часа после публикации контент обычно набирает 4.01% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 1 597 просмотров. В течение первых суток публикация набирает 931 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 9.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как c++, навигация, компилятор, удалёнка, developer.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Все самое полезное для плюсовика и сишника в одном канале.
По рекламе: @proglib_adv
Учиться у нас: https://proglib.io/w/d6cd2932
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
#WXSSA”
Благодаря высокой частоте обновлений (последние данные получены 06 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
std::ostream хранит std::ios_base::fmtflags:
std::cout << std::hex << 255; // ff
std::cout << 10; // a (всё ещё hex!)
⚡️ Флаги остаются:
std::cout.setf(std::ios::hex, std::ios::basefield);
// Эквивалентно std::hex
💡 Сохранение состояния:
std::cout << std::hex << 255;
// Или
std::ios oldState(nullptr);
oldState.copyfmt(std::cout);
// ... вывод ...
std::cout.copyfmt(oldState); // Восстановление
❗️Манипуляторы — это состояние. Не забывай сбрасывать флаги в коде.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#под_капотомvcpkg install boost-asio
2️⃣ Пишем CMakeLists.txt:
cmake_minimum_required(VERSION 3.20)
project(NetworkTutorial CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# Компилятор warnings
if(MSVC)
add_compile_options(/W4)
else()
add_compile_options(-Wall -Wextra -pedantic)
endif()
# Boost через vcpkg/system
find_package(Boost 1.82 REQUIRED COMPONENTS system)
add_executable(client main.cpp)
target_link_libraries(client
PRIVATE
Boost::system
Boost::headers
)
3️⃣ Пишем main.cpp (проверка установки):
#include <boost/asio.hpp>
#include <iostream>
int main() {
try {
boost::asio::io_context io;
std::cout << "Boost.Asio version: "
<< BOOST_ASIO_VERSION << '\n';
std::cout << "Setup successful!\n";
// Проверяем, что io_context работает
boost::asio::steady_timer timer(io);
timer.expires_after(std::chrono::milliseconds(100));
timer.async_wait([](const boost::system::error_code&) {
std::cout << "Timer works!\n";
});
io.run();
return 0;
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << '\n';
return 1;
}
}
4️⃣ Сборка и запуск:
# С vcpkg
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=[путь к vcpkg]/scripts/buildsystems/vcpkg.cmake
cmake --build build
./build/client
# Или с системным Boost (Linux/macOS)
cmake -B build -S .
cmake --build build
./build/client
5️⃣ Ожидаемый вывод:
Boost.Asio version: 103402
Setup successful!
Timer works!
❗️ Если видите этот вывод — то всё установлено верно.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчикvcpkg install boost-asio
2️⃣ Пишем CMakeLists.txt:
cmake_minimum_required(VERSION 3.20)
project(NetworkTutorial CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# Компилятор warnings
if(MSVC)
add_compile_options(/W4)
else()
add_compile_options(-Wall -Wextra -pedantic)
endif()
# Boost через vcpkg/system
find_package(Boost 1.82 REQUIRED COMPONENTS system)
add_executable(client main.cpp)
target_link_libraries(client
PRIVATE
Boost::system
Boost::headers
)
3️⃣ Пишем main.cpp (проверка установки):
#include <boost/asio.hpp>
#include <iostream>
int main() {
try {
boost::asio::io_context io;
std::cout << "Boost.Asio version: "
<< BOOST_ASIO_VERSION << '\n';
std::cout << "Setup successful!\n";
// Проверяем, что io_context работает
boost::asio::steady_timer timer(io);
timer.expires_after(std::chrono::milliseconds(100));
timer.async_wait([](const boost::system::error_code&) {
std::cout << "Timer works!\n";
});
io.run();
return 0;
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << '\n';
return 1;
}
}
4️⃣ Сборка и запуск:
# С vcpkg
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=[путь к vcpkg]/scripts/buildsystems/vcpkg.cmake
cmake --build build
./build/client
# Или с системным Boost (Linux/macOS)
cmake -B build -S .
cmake --build build
./build/client
5️⃣ Ожидаемый вывод:
Boost.Asio version: 103402
Setup successful!
Timer works!
❗️ Если видите этот вывод — то всё установлено верно.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчикstd::optional, std::variant, std::filesystem, structured bindings, if constexpr. Это фундаментальные инструменты современного C++.
При этом C++17 достаточно стабилен — большинство компиляторов его полностью поддерживают без багов.
Стратегия: начать с C++17, написать чистую архитектуру, а когда инфраструктура созреет — постепенно мигрировать на C++20/23. Это практичный подход, который не загоняет вас в угол.
Кстати, многие крупные проекты именно так и делают: устанавливают разумный минимум и плавно поднимают планку.
✏️ Какой минимальный стандарт вы считаете приемлемым для нового проекта в 2026 году?
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчикstd::this_thread::sleep_for(std::chrono::milliseconds(0)) выглядит как no-op. Но бывает полезен для cooperative multitasking.
🥳 Что реально происходит:
// Busy-wait — сжигает CPU
while (!ready.load()) { }
// Cooperative — даёт шанс другим потокам
while (!ready.load()) {
std::this_thread::sleep_for(std::chrono::milliseconds(0));
}
⚡️ Механизм sleep(0):
• Системный вызов sched_yield() (Linux) или SwitchToThread() (Windows)
• Поток добровольно освобождает CPU
• Планировщик может переключиться на другой поток того же приоритета
• Если других готовых потоков нет — возврат немедленный"
🍉 Важная тонкость:
Поток НЕ переводится в WAITING. Он остаётся RUNNING, но в конце очереди планировщика. Это не syscall с блокировкой!
⚠️ Отличие от yield:
std::this_thread::yield(); // Более явная семантика
sleep_for(0ms); // Может быть оптимизировано компилятором
🍩 Практический вывод:
Используйте yield() вместо sleep(0) для читаемости. В spin-lock'ах это снижает contention и энергопотребление. Но для реальных синхронизаций используйте condition variables — они эффективнее.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#константная_правильностьRAG-системы и оптимизировать работу моделей?
На курсе «Разработка AI-агентов» мы учим проектировать автономные системы с нуля.
Темы курса:
— архитектура ReAct: разделение рассуждений и действий;
— использование протокола MCP для межсистемного взаимодействия;
— построение баз знаний RAG с миллисекундным доступом;
— оркестрация автономных групп ботов.
Новый год — время для нового стека.
🎁 До 12 января акция «3 в 1»: курс по ИИ-агентам + ещё 2 курса в подарок.
Узнать большеtimestamp, вычитаешь другой timestamp — получаешь разницу. Но в C++ всё не так просто.
Пример: вы вычитаете steady_clock::time_point из system_clock::time_point. Что получится? Разница между 1 января 1970 года и... моментом загрузки системы? Или чем-то ещё более абстрактным? 🤷♂️
Библиотека <chrono> специально делает такие операции сложными — не из вредности, а чтобы защитить вас от целого класса неуловимых багов. Баги со временем — это те самые баги, которые проявляются только в проде, только по вторникам, и только когда админ решил синхронизировать часы с NTP.
Разберёмся, почему разные часы нельзя просто так сравнивать, как правильно конвертировать между ними, и почему 1499ns вполне может превратиться в 1µs.
👉 Продолжение
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежакstd::string и std::vector стали constexpr-friendly, что открывает безумные возможности.
#include <array>
#include <algorithm>
#include <iostream>
constexpr auto generate_tree(int height) {
constexpr int MAX_WIDTH = 100;
std::array<char, MAX_WIDTH * 10> tree{}; // Увеличим размер для хранения символов
int idx = 0;
for (int i = 0; i < height; ++i) {
int stars = i * 2 + 1; // Количество звездочек на уровне
int spaces = height - i - 1; // Количество пробелов перед звездочками
// Добавляем пробелы
for (int j = 0; j < spaces; ++j) {
tree[idx++] = ' ';
}
// Добавляем звездочки
for (int j = 0; j < stars; ++j) {
tree[idx++] = '*';
}
// Добавляем перевод строки
tree[idx++] = '\n';
}
tree[idx] = '\0'; // Завершающий нуль
return tree;
}
int main() {
constexpr auto my_tree = generate_tree(10);
std::cout << my_tree.data();
return 0;
}
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#константная_правильность
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
