Библиотека C/C++ разработчика | cpp, boost, qt – Telegram
Библиотека C/C++ разработчика | cpp, boost, qt
19.6K subscribers
1.96K photos
60 videos
16 files
4.21K links
Все самое полезное для плюсовика и сишника в одном канале.

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Download Telegram
🤖🔎 15 AI-инструментов для поиска работы в IT за рубежом

В далеком 2023 году я уже делала подборку AI-инструментов, помогающих в поиске работы. В тот список я в основном включила конструкторы резюме и генераторы сопроводительных писем. Но ведь поиск работы не ограничивается только составлением резюме и cover letter — тем более сейчас, в условиях высококонкурентной среды и рынка работодателей. Поэтому я решила углубиться в эту тему и найти как можно больше разных инструментов, которые призваны оптимизировать поиск работы и позволят качественнее подготовиться к собеседованию.

👉 Статья

🔹Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹Сайт Proglib

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

#свежак
😁3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Летим зимовать ✈️

Когда холодает, айтишники пакуют чемоданы, а мы разыгрываем ваучер на 50 000 рублей в Островке.

Поехать к морю или остаться среди снежных пейзажей — выбирайте сами!

Чтобы участвовать, нужно оставить любую реакцию под этим постом и подписаться на каналы ниже:

😎 Типичный программист
🐸 Библиотека программиста
🟢 Ostrovok! Tech

Теперь осталось нажать на кнопку участия под этим постом и вы в игре!

Итоги подведём 12 декабря. Победителя выберем с помощью бота. Подробнее с правилами можно ознакомиться здесь.

Всем удачи!

Участников: 111
Призовых мест: 1
Дата розыгрыша: 19:00, 12.12.2025 MSK (3 дня)
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩2😁1
🍪 Короткий синтаксис concepts: что компилятор делает с auto?

void foo(Sortable auto x) — это синтаксический сахар. Компилятор разворачивает его в полноценный шаблон с constraint.


⚡️ Трансформация

// Пишешь:
void foo(Sortable auto x);

// Компилятор видит:
template<typename T>
requires Sortable<T>
void foo(T x);


Каждый auto становится отдельным шаблонным параметром. Если несколько auto — несколько параметров:

void bar(Integral auto a, Floating auto b);

// Превращается в:
template<typename T1, typename T2>
requires Integral<T1> && Floating<T2>
void bar(T1 a, T2 b);



🔍 Return type

То же самое работает с возвращаемым типом:
Sortable auto get() { return std::vector{1, 2, 3}; }

// Эквивалент:
template<Sortable T>
T get() { return std::vector{1, 2, 3}; }


Компилятор выводит тип возврата и проверяет concept.


💡 Decltype(auto) с concepts

Можно даже:
Sortable decltype(auto) get_ref(auto& container) {
return container[0];
}


Здесь decltype(auto) сохраняет ссылочность, а Sortable проверяется для полученного типа.


⚠️ Ограничение

Нельзя смешивать в одном объявлении:
// ОШИБКА:
template<typename T>
void foo(Sortable auto x, T y);
// auto создаёт НОВЫЙ шаблонный параметр, конфликт с T



📌 Манглинг

Для компоновщика разницы нет — и короткий, и длинный синтаксис создают одинаковый mangled name. Это чисто синтаксическое удобство.

🔹Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹Сайт Proglib

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

#под_капотом
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3
Что не так с public virtual?

Вы добавляете логирование в базовый класс, а оно не срабатывает? Добро пожаловать в мир публичных виртуальных функций.

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

//  Классический антипаттерн
class Base {
public:
virtual void process(Data& data) {
log("Processing...");
// Логика
}
};

class Derived : public Base {
public:
void process(Data& data) override {
// Производный класс забыл вызвать Base::process()
// Логирование пропало!
}
};



💡Паттерн NVI решает это:

NVI (Non-Virtual Interface) — паттерн, где публичные методы невиртуальные, а виртуальные — приватные. Базовый класс становится "шлюзом", контролирующим доступ к кастомизируемой логике.

class IProcessor {
public:
void process(Data& data) { // Невиртуальный public
validate(data); // Общая логика
logStart(); // Тоже общая
process(data); // Кастомизация
logEnd();
}

private:
virtual void process(Data& data) = 0; // Виртуальный private
void validate(Data& data) { /* ... */ }
void logStart() { /* ... */ }
void logEnd() { /* ... */ }
};


Теперь каждый вызов process() гарантированно проходит через логирование. Производные классы физически не могут его обойти.


🔹Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹Сайт Proglib

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

#константная_правильность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🌚32👾1
Плюсовики, собираемся 15 декабря в Москве и онлайн на встречу РГ21 С++

Ивент для практикующих C++-разработчиков и энтузиастов, которые хотят понимать, куда движется язык, и участвовать в его развитии.

Антон Полухин (Техплатформа Городских сервисов Яндекса) поделится новостями со встречи международного Комитета по стандартизации языка C++ — о прогрессе в работе над С++26, новинках и о том, какие комментарии к стандарту подготовила Россия.

На встрече вы узнаете, как именно российским разработчикам участвовать в развитии стандарта языка, сможете задать свои вопросы спикеру и обменяться мнениями с коллегами.

Подробности и регистрация
😁2
🐸 Подборка вакансий для C++-разработчиков за неделю

Разработчик C++ / Rust (SDN dataplane, DPDK/DOCA API) — Удалёнка

Разработчик С++ (Middle) — от 180 000 и до 400 000 ₽ Гибрид (Москва)

Инженер-разработчик (C/C++/Qt/Embedded) — от 130 000 и до 250 000₽ Гибрид (Санкт-Петербург)

C++ Engineer в компиляторах — от 300 000 ₽ Офис (Новосибирск)

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

Библиотека C/C++ разработчика
😁2
📰 Свеженькое из мира C++

Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.

😎 Интересное:

Ставим Fedora на MacBook Pro 2019 с чипом T2 — инструкция по установке Fedora на MacBook
Симулятор: От MOS6502 к x86 — рассматривается развитие симулятора от самых простых микросхем и до x86
15 AI-инструментов для поиска работы в IT за рубежом — полезные инструменты для поиска работы
Короткий синтаксис concepts: что компилятор делает с auto? — фишка, которая позволит сделать код более читаемым
Что не так с public virtual? — рассматриваем как решить проблему с виртуальными функциями при наследовании




🔹Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹Сайт Proglib


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

#свежак
😁1