🔧 Как правильно передать данные в std::thread
Передача параметров в потоки — источник багов даже у опытных разработчиков. Главная проблема: время жизни объектов и способы передачи.
Пошаговое решение:
1️⃣ Используйте std::ref для ссылок
2️⃣ Копируйте простые типы по значению
3️⃣ Перемещайте тяжелые объекты через std::move
4️⃣ Избегайте сырых указателей
⚠️ Частые ошибки:
• Передача ссылок без std::ref
• Доступ к локальным переменным после их уничтожения
💡 При сомнениях используйте передачу по значению🤓
Библиотека C/C++ разработчика #буст
Передача параметров в потоки — источник багов даже у опытных разработчиков. Главная проблема: время жизни объектов и способы передачи.
Пошаговое решение:
1️⃣ Используйте std::ref для ссылок
2️⃣ Копируйте простые типы по значению
3️⃣ Перемещайте тяжелые объекты через std::move
4️⃣ Избегайте сырых указателей
#include <thread>
#include <string>
void process_data(int value, const std::string& text, std::vector<int>& result) {
// Обработка данных
result.push_back(value);
}
int main() {
int number = 42;
std::string message = "Hello";
std::vector<int> results;
// Правильная передача параметров
std::thread t(process_data, number,
std::cref(message), // const ссылка
std::ref(results)); // обычная ссылка
t.join();
return 0;
}
⚠️ Частые ошибки:
• Передача ссылок без std::ref
• Доступ к локальным переменным после их уничтожения
💡 При сомнениях используйте передачу по значению🤓
Библиотека C/C++ разработчика #буст
😡 А вас тоже бесят облачные сервисы?
Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?
Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день.
❓Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное
По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.
⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?
Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день.
❓Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное
По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.
⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
Офер VK для бэкенд-разработчиков за выходные
VK проводит Weekend Offer для бэкенд-разработчиков. Если вы больше 3 лет пишете на Java, Go, Python или C++ — у вас есть все шансы получить приглашение на работу за 2 дня: технические собеседования 28 июня, а финалы, знакомство с командами и офер 29 июня.
Отправляйте заявку до 25 июня и станьте частью VK! Подробнее о мероприятии — на сайте.
VK проводит Weekend Offer для бэкенд-разработчиков. Если вы больше 3 лет пишете на Java, Go, Python или C++ — у вас есть все шансы получить приглашение на работу за 2 дня: технические собеседования 28 июня, а финалы, знакомство с командами и офер 29 июня.
Отправляйте заявку до 25 июня и станьте частью VK! Подробнее о мероприятии — на сайте.
🧱Статья: Управление зависимостями на C++ с помощью vcpkg
Автор статьи демонстрирует создание полноценной экосистемы управления зависимостями на базе vcpkg с собственными реестрами и серверным кэшированием.
❗️ Ключевые моменты статьи:
• создание
• сборка
• организация кэширования бинарей через nuget-сервер (как в Conan)
Основной фокус — практическое решение проблем крупных проектов, где нужен полный контроль над версиями зависимостей и их распространением в команде.
Особенно актуально для enterprise-проектов с жесткими требованиями к воспроизводимости сборок и
Вы узнаете, что
👉 Статья
Библиотека C/C++ разработчика
Автор статьи демонстрирует создание полноценной экосистемы управления зависимостями на базе vcpkg с собственными реестрами и серверным кэшированием.
❗️ Ключевые моменты статьи:
• создание
custom registry
с собственными портами Qt5/Boost
нужных версий• сборка
standalone
окружений, полностью отвязанных от основного vcpkg• организация кэширования бинарей через nuget-сервер (как в Conan)
Основной фокус — практическое решение проблем крупных проектов, где нужен полный контроль над версиями зависимостей и их распространением в команде.
Особенно актуально для enterprise-проектов с жесткими требованиями к воспроизводимости сборок и
CI/CD пайплайнами
.Вы узнаете, что
vcpkg
может быть не просто менеджером пакетов, а полноценной платформой для управления зависимостями с возможностями уровня корпоративных решений — при грамотной настройке инфраструктуры.👉 Статья
Библиотека C/C++ разработчика
⚡️ Фича дня: if consteval в C++23
Хотите разный код для compile-time и runtime? C++23 добавляет
🔴 До: Сложные трюки
🟢 После: Читаемый consteval
❗️ Практические применения:
• Оптимизированные математические библиотеки
• Compile-time криптография
• Генерация lookup-таблиц
💡Используете метапрограммирование в ваших проектах?
Библиотека C/C++ разработчика #буст
Хотите разный код для compile-time и runtime? C++23 добавляет
if consteval
для условной компиляции!🔴 До: Сложные трюки
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++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Если необходимо быстро привести код к определённому стилю, то этом случае можно воспользоваться следующим промптом.
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
✅ Правильные отступы и пробелы
Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🌧️ Облачная терапия: время выговориться!
Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».
Пора узнать, как обстоят дела с облаками на самом деле. Поэтому мы собираем ваши реальные истории про облачные сервисы.
🤫О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов
⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».
Пора узнать, как обстоят дела с облаками на самом деле. Поэтому мы собираем ваши реальные истории про облачные сервисы.
🤫О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов
⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
😎 Как начать писать свой проект на Unreal Engine 5
💡 Эта история — не просто дневник разработчика, а честный рассказ о боли, решимости и технических подводных камнях, с которыми сталкиваешься, когда решаешь написать свой VR-движок на UE5.
❗️Ключевые моменты:
• почему переход с Unity на Unreal не всегда гладкий
• как в одиночку освоить UE5 и C++ для написания плагинов
• какие возможности и ограничения есть у движка «из коробки»
Главный фокус — личный опыт перехода от
❗️Пост особенно полезен разработчикам, кто:
• планирует создавать сложные системы на UE5
• хочет понять реальную стоимость «модульной архитектуры»
• интересуется плагинами и расширениями движка на C++
💬 Итог: Unreal мощный, но не идеальный.
👉 История
Библиотека C/C++ разработчика
💡 Эта история — не просто дневник разработчика, а честный рассказ о боли, решимости и технических подводных камнях, с которыми сталкиваешься, когда решаешь написать свой VR-движок на UE5.
❗️Ключевые моменты:
• почему переход с Unity на Unreal не всегда гладкий
• как в одиночку освоить UE5 и C++ для написания плагинов
• какие возможности и ограничения есть у движка «из коробки»
Главный фокус — личный опыт перехода от
Java
и Unity
к полному погружению в экосистему Unreal Engine
с её модульной архитектурой, плагинами, Blueprints
и C++
.❗️Пост особенно полезен разработчикам, кто:
• планирует создавать сложные системы на UE5
• хочет понять реальную стоимость «модульной архитектуры»
• интересуется плагинами и расширениями движка на C++
💬 Итог: Unreal мощный, но не идеальный.
👉 История
Библиотека C/C++ разработчика
Проблема: Написание документации для C++ кода — трудоемкий процесс, который разработчики часто откладывают или вовсе пропускают.
Решение: Автоматическая генерация шаблонов документации
Doxygen
для классов и функций!• CLion: /** + Enter перед объявлением функции/класса
• VSCode (с Doxygen Documentation Generator): Ctrl+Alt+D
• Visual Studio: /// + Enter перед функцией
• Установите курсор перед объявлением функции или класса
• Введите /**
• Нажмите Enter
• IDE автоматически создаст шаблон документации со всеми параметрами.
Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🌀🚀⚡ Мастерство STL алгоритмов в C++
Устал писать циклы for для каждой мелочи? Стандартная библиотека C++ уже содержит все необходимые алгоритмы — оптимизированные, протестированные и готовые к бою. Время перестать изобретать велосипед и начать использовать силу STL на полную.
💡 На карточках — 5 категорий алгоритмов с примерами для мгновенного применения.
Библиотека C/C++ разработчика
Устал писать циклы for для каждой мелочи? Стандартная библиотека C++ уже содержит все необходимые алгоритмы — оптимизированные, протестированные и готовые к бою. Время перестать изобретать велосипед и начать использовать силу STL на полную.
💡 На карточках — 5 категорий алгоритмов с примерами для мгновенного применения.
Библиотека C/C++ разработчика
😱 Завтра цена на курс «AI-агенты для DS» вырастет
Пока вы думаете — другие уже покупают. Что вы теряете, откладывая решение? Как минимум — 10 000 рублей, именно столько вы переплатите завтра. Как максимум — шанс войти в топ-1% дата-сайентистов, которые умеют строить AI-агенты.
🎓 Чему вы научитесь на курсе:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой
Решение за вами.
👉 Купить курс по старой цене
Пока вы думаете — другие уже покупают. Что вы теряете, откладывая решение? Как минимум — 10 000 рублей, именно столько вы переплатите завтра. Как максимум — шанс войти в топ-1% дата-сайентистов, которые умеют строить AI-агенты.
🎓 Чему вы научитесь на курсе:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой
Решение за вами.
👉 Купить курс по старой цене
proglib.academy
Курс|AI-агенты для DS-специалистов
На курсе ты разберёшься, как работают AI-агенты и как их применять в работе — от текстовых помощников до систем, помогающих принимать решения. Разберем архитектуру агентов, связку с внешними API, пайплайны действий и популярные библиотеки. Курс включает реальные…