Есть разумный компромисс между самым современным и каменным веком: использовать C++17 как минимальный стандарт для новых проектов.
C++17 поддерживается GCC 8+, Clang 5+, MSVC 19+. Это уже довольно старые версии, но они дают огромное преимущество:
std::optional, std::variant, std::filesystem, structured bindings, if constexpr. Это фундаментальные инструменты современного C++.При этом C++17 достаточно стабилен — большинство компиляторов его полностью поддерживают без багов.
Стратегия: начать с C++17, написать чистую архитектуру, а когда инфраструктура созреет — постепенно мигрировать на C++20/23. Это практичный подход, который не загоняет вас в угол.
Кстати, многие крупные проекты именно так и делают: устанавливают разумный минимум и плавно поднимают планку.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5👍4
Перед тем как написать первую строку кода, настроим проект. Никаких танцев с бубном — только современные практики
vcpkg install boost-asio
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
)
#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;
}
}
# С 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
Boost.Asio version: 103402
Setup successful!
Timer works!
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2
Манипуляторы — не просто функции. Они изменяют внутренние флаги потока.
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++ разработчика
#под_капотом
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3
Forwarded from Библиотека задач по C++ | тесты, код, задания
Forwarded from Библиотека задач по C++ | тесты, код, задания
Что можно сказать об этом коде?
Anonymous Quiz
33%
Выведет 0
23%
Выведет nullptr
18%
Выведет 0x0
12%
Ошибка компиляции
14%
Неопределённое поведение
😁2
🔗 libfoo.a vs libfoo.so: что выбрать?
Статическая и динамическая линковка — это выбор между размером бинарника и удобством обновлений.
❗️ Статическая линковка (.a на Linux, .lib на Windows):
✅ Один файл, работает везде
❌ Большой размер (мегабайты вместо килобайт)
❌ Обновление библиотеки = пересборка всего
❗️ Динамическая линковка (.so на Linux, .dll на Windows):
✅ Маленький бинарник
✅ Обновление библиотеки не требует пересборки
❌ Нужна библиотека на целевой системе
❌ "DLL hell" / dependency conflicts
🐸 Когда что использовать:
Статика: embedded, CLI-утилиты, дистрибуция
Динамика: системные демоны, плагины, shared libs
💡 Проверить зависимости:
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#константная_правильность
Статическая и динамическая линковка — это выбор между размером бинарника и удобством обновлений.
g++ main.cpp -static -o program
g++ main.cpp -o program # По умолчанию
✅ Маленький бинарник
✅ Обновление библиотеки не требует пересборки
❌ Нужна библиотека на целевой системе
❌ "DLL hell" / dependency conflicts
Статика: embedded, CLI-утилиты, дистрибуция
Динамика: системные демоны, плагины, shared libs
ldd ./program (Linux)📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#константная_правильность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3
AI-агенты 2026: системный подход к автономности
Даже в мире
Что разберём на курсе:
— архитектура
— построение сверхбыстрых
— протокол
— оркестрация через
🎁 До 12 января действует акция «3 в 1»: курс по ИИ-агентам + 2 курса в подарок.
Прокачать системный AI
Даже в мире
C++ нельзя игнорировать ИИ. В новом году мы учимся проектировать высокопроизводительные системы, где логику принятия решений берут на себя агенты.Что разберём на курсе:
— архитектура
ReAct: как разделить логику и действия агента;— построение сверхбыстрых
RAG-систем для работы с документацией;— протокол
MCP: как подружить разные модели в одной системе;— оркестрация через
n8n для автоматизации разработки.🎁 До 12 января действует акция «3 в 1»: курс по ИИ-агентам + 2 курса в подарок.
Прокачать системный AI
👍3🥰1
🐸 Подборка вакансий для C++-разработчиков за неделю
C Developer (VPP/DPDK) — от 200 000 ₽ Офис/удалёнка (Москва)
Программист С/Linux — от 300 000 ₽ Удалёнка
C/C++ Developer — от 400 000 ₽ Удалёнка
Reverse engineer — от 400 000 ₽ Гибрид (Санкт-Петербург)
C++-разработчик (Linux) — Удалёнка
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#вакансии
C Developer (VPP/DPDK) — от 200 000 ₽ Офис/удалёнка (Москва)
Программист С/Linux — от 300 000 ₽ Удалёнка
C/C++ Developer — от 400 000 ₽ Удалёнка
Reverse engineer — от 400 000 ₽ Гибрид (Санкт-Петербург)
C++-разработчик (Linux) — Удалёнка
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#вакансии
👍2
Forwarded from Библиотека задач по C++ | тесты, код, задания
🤔 Теоретический вопрос
Вопрос: У map и set есть методы
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Вопрос: У map и set есть методы
find() и count(). Оба могут проверить наличие элемента. В чём разница и когда какой метод предпочтительнее использовать с точки зрения производительности?📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
😁3❤2
Многие разработчики думают, что
compare_exchange_weak — это просто облегчённая версия compare_exchange_strong. На самом деле у неё есть неочевидное поведение: она может вернуть false, даже если значение совпадает.На некоторых архитектурах (ARM, PowerPC) атомарные операции реализованы через инструкции load-link/store-conditional (LL/SC). Процессор помечает адрес памяти при чтении и проверяет при записи — не изменился ли он.
Но вот проблема: между LL и SC может произойти spurious failure — ложный отказ. Это случается, если:
• Произошло переключение контекста
• Кеш-линия была вытеснена
• Другой процессор обратился к соседней памяти
std::atomic<int> counter{0};
int expected = 0;
// Может вернуть false, даже если counter == 0!
bool success = counter.compare_exchange_weak(expected, 1);Всегда используй compare_exchange_weak в цикле. Для однократных попыток бери compare_exchange_strong — она гарантирует, что false означает реальное несовпадение значений.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#под_капотом
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔5👍3
Forwarded from Библиотека задач по C++ | тесты, код, задания
Сколько копирований гарантировано в C++17?
Anonymous Quiz
43%
0
26%
1
9%
2
17%
Зависит от компилятора
5%
UB
😁1🥱1
"Timestamp — это просто timestamp, какая разница?" — так думают многие, пока не сталкиваются с багами при работе со временем в распределенных системах или при логировании событий.
В C++20 добавили целых 5 новых типов часов, и каждый решает свою специфическую задачу.
❗️ Ключевые моменты статьи:
•
utc_clock — учитывает leap seconds для точной синхронизации с реальным временем;•
tai_clock и gps_clock — работают без leap seconds для научных вычислений и спутниковых систем;•
file_clock — обеспечивает предсказуемую работу с файловыми таймстемпами;•
local_t — позволяет явно управлять часовыми поясами и DST.Основной фокус — на различиях между временными шкалами. Особенно актуально для систем логирования, работы с GPS-данными, файловыми системами и любых задач, где критична точность временных меток.
👉 Больше подробностей
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#буст
👍3🔥2❤1
Добавление execution policy превращает обычный алгоритм в параллельный (sort, for_each, transform и др.).
std::vector<int> data(1'000'000);
std::sort(data.begin(), data.end());
#include <execution>
// Автоматическая векторизация + многопоточность
std::sort(std::execution::par_unseq,
data.begin(), data.end());
std::execution::seq // Последовательно
std::execution::par // Параллельно
std::execution::par_unseq // Параллельно + векторизация
std::execution::unseq // Только векторизация (C++20)
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#константная_правильность
Please open Telegram to view this post
VIEW IN TELEGRAM
👏9😁1👾1
В 2025 году IT-индустрия завершила эксперимент с wellbeing-программами и пришла к циничному выводу: попытка избавить зумеров от выгорания экономически невыгодна. В 2026 карьерный рост линейно зависит от готовности работать сверх сил, а компании внедряют up-or-out: либо показываешь рост, либо уходишь.
👉 Читать статью
#MadeInProglib
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7😢3👍1
Roadmap: Оркестрация и деплой ИИ-агентов
Для `DevOps`-инженера ИИ-агенты — это новые типы нагрузок, требующие специфического мониторинга, безопасности и масштабирования.
План освоения технологии:
— понимание логики автономных агентов и их взаимодействия с
— настройка окружений для работы мультиагентных систем;
— управление состоянием (`State`) и памятью агентов в кластерах;
— безопасность и контроль доступа при
Курс «Разработка ИИ-агентов» поможет разобраться в архитектуре ИИ-сервисов и научиться внедрять их в продакшн.
Освоить ИИ-инструменты
Акция «3 в 1» до 19 января: купите курс и получите ещё два в подарок.
Для `DevOps`-инженера ИИ-агенты — это новые типы нагрузок, требующие специфического мониторинга, безопасности и масштабирования.
План освоения технологии:
— понимание логики автономных агентов и их взаимодействия с
API;— настройка окружений для работы мультиагентных систем;
— управление состоянием (`State`) и памятью агентов в кластерах;
— безопасность и контроль доступа при
Tool Calling.Курс «Разработка ИИ-агентов» поможет разобраться в архитектуре ИИ-сервисов и научиться внедрять их в продакшн.
Освоить ИИ-инструменты
Акция «3 в 1» до 19 января: купите курс и получите ещё два в подарок.
C++ Roadmap: производительность в мире ИИ-агентов
Понимание архитектуры ИИ-агентов критично для создания быстрых и эффективных систем, работающих с нейросетями на низком уровне.
Ключевой стек навыков:
— архитектура автономных агентов и их циклы принятия решений;
— оптимизация
— проектирование логики для агентных систем;
— масштабируемость мультиагентных структур.
Курс «Разработка ИИ-агентов» даст вам понимание того, как устроены современные ИИ-решения изнутри.
Посмотреть программу
Акция «3 в 1»: при покупке курса до 19 января вы получаете ещё два курса в подарок.
Понимание архитектуры ИИ-агентов критично для создания быстрых и эффективных систем, работающих с нейросетями на низком уровне.
Ключевой стек навыков:
— архитектура автономных агентов и их циклы принятия решений;
— оптимизация
Inference и управления ресурсами при вызове инструментов;— проектирование логики для агентных систем;
— масштабируемость мультиагентных структур.
Курс «Разработка ИИ-агентов» даст вам понимание того, как устроены современные ИИ-решения изнутри.
Посмотреть программу
Акция «3 в 1»: при покупке курса до 19 января вы получаете ещё два курса в подарок.
🥱4👍2