Библиотека C/C++ разработчика | cpp, boost, qt
19.5K subscribers
2.01K photos
64 videos
16 files
4.28K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17

#WXSSA
Download Telegram
😎 Топ-вакансий для C++ разработчиков за неделю

C developer (MES) — Офис (Новосибирск)

Разработчик систем компьютерного зрения C++ — от 4000 и до 7000 $
Удалёнка

Middle/Senior C++ разработчик — Удалёнка

✍️ Еще больше топовых вакансий — в нашем канале C++ jobs

📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#буст
👍1😁1👾1
✏️ Как одно ключевое слово ускоряет код?

final — это не только запрет наследования. Это подсказка компилятору для девиртуализации. Компилятор получает гарантию, что другой реализации не будет.


🍉 До и после:
class Base {
virtual void process() = 0;
};

class Derived : public Base {
void process() override final { /* ... */ }
// ^^^^^
};


Теперь компилятор знает: Derived::process — последняя версия. При вызове через Derived* или Derived& он может девиртуализировать:

void hotPath(Derived& obj) {
obj.process(); // прямой вызов, не через vtable
}


📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#под_капотом
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
👻 std::atexit — зачем регистрировать функции на выход?

Когда твоя программа завершается, нужно освободить ресурсы, закрыть логи, сохранить состояние. std::atexit позволяет зарегистрировать функции, которые вызовутся автоматически при нормальном завершении программы.

#include <cstdlib>
#include <iostream>

void cleanup() {
std::cout << "Cleaning up resources...\n";
}

int main() {
std::atexit(cleanup);
std::cout << "Program running...\n";
return 0; // cleanup() вызовется автоматически
}


Ключевой момент: функции вызываются в порядке, обратном регистрации (LIFO).

❗️ Важно: std::atexit работает только при нормальном завершении (return из main или std::exit). При std::abort или неперехваченных исключениях функции не вызовутся.

❗️Best practice: используй RAII и деструкторы вместо atexit, когда это возможно. atexit — для глобального состояния и C-совместимости.


✏️ Используешь ли ты atexit в своих проектах?

📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#под_капотом
Please open Telegram to view this post
VIEW IN TELEGRAM
👏5👍2
🎯 Нестандартные форматы резюме

Классическое резюме живет 7 секунд в голове рекрутера — а дальше стирается. Как выделиться в 2026-м, когда на одну вакансию приходят сотни похожих PDF-ок?

➡️ В статье — 6 небанальных форматов: от сайта-резюме с геймификацией до ченджлога в духе заметок о релизе.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Пятница, 19:00. Худшее время для деплоя, но идеальное, чтобы вскрыть «капот» ИИ-агентов и понять, как там работают векторные БД и алгоритмы поиска.

Даже LLM требуют эффективного управления данными. На открытом уроке поговорим о технической реализации современных систем с контекстом.

План занятия:

RAG vs Fine-tuning: оптимизация ресурсов и точности;
— векторные хранилища (`FAISS`) и работа с индексами;
— реализация пайплайна для обработки документов без «галлюцинаций».

Один из спикеров — Алексей Яндутов, ML-инженер в поиске Яндекса.

Занятие проходит в рамках подготовки к курсу «Разработка AI-агентов». Только для тех, кто готов погружаться в детали.

Записаться на урок
😁2
🍴 Задача на выходные: до скольки считает стандарт?

Стандарт C++ гарантирует, что можно зарегистрировать минимум N функций через std::atexit. Найди баг в этом коде:

#include <cstdlib>
#include <iostream>

void dummy_handler() {
static int counter = 0;
std::cout << "Handler " << ++counter << "\n";
}

int main() {
// Регистрируем 100 обработчиков
for (int i = 0; i < 100; ++i) {
if (std::atexit(dummy_handler) != 0) {
std::cerr << "Failed at " << i << "\n";
return 1;
}
}

std::cout << "All registered!\n";
return 0;
}


Вопрос: Гарантирует ли стандарт, что все 100 обработчиков зарегистрируются? Какое минимальное количество гарантируется? Как правильно обработать ошибку регистрации?

📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1