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

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

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

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

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

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

C++ Developer (Gates Team) — от 5 000 € Офис (Дубай, Амстердам)

Старший разработчик C++ — от 350 000 и до 500 000 ₽ Удалёнка

Middle+/Senior C++ Developer — от 2 500 и до 3 500 $ Удалёнка

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

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

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

#буст
1👍1😁1
✌🏻 У нас две новости — хорошая и плохая!

Хорошая: Ваших знаний, скорее всего, хватит, чтобы собрать рабочую демку AI-агента в Colab. 🫡

Плохая: Вы вряд ли выведете его в прод, не обанкротившись на токенах и не слив базу. 🤯

Для защиты от таких сценариев мы полностью пересобрали курс «Разработка AI-агентов». Теперь внутри плотная работа с экономикой ресурсов, дебаг через time-travel в LangGraph, извлечение данных из кривых сканов для RAG и комплаенс по 152-ФЗ.

Если всё ещё сомневаетесь, послушайте голосовое от спикера курса Влада Прошинского, где он объясняет, как правильно тестировать агентов перед релизом.


Программа курса, полный состав спикеров и другие подробности 👈🏻

ВАЖНО! До 5 апреля на курс действует скидка, но свободные места могут закончиться раньше.
😁2🥱1
🧩 Задача на выходные: правильная ли это BST?

Классическая ловушка на собеседованиях. Этот код проверяет BST неправильно:

bool isValidBST(TreeNode* node) {
if (!node) return true;
if (node->left && node->left->val >= node->val) return false;
if (node->right && node->right->val <= node->val) return false;
return isValidBST(node->left) && isValidBST(node->right);
}



Для дерева:
    5
/ \
1 4
/ \
3 6


Функция вернёт true. Но это не BST!

✏️ Объясни баг и перепиши функцию корректно.


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

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

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁21👍1🤔1
💼 30 сайтов для поиска работы в IT в 2026 году

Рынок IT-вакансий давно вышел за пределы hh.ru и LinkedIn. Одни площадки заточены под стартапы и equity-офферы, другие продвигают прозрачные зарплаты без буллшита, третьи созданы специально для первой работы после универа. В этом гайде собраны 30 джоб-сайтов с описанием, кому и зачем они подходят.

👉 Продолжение...

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

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

#буст
😁4
🌻 C++26 официально готов!

На встрече международного комитета по стандартизации ISO C++ в Кройдоне поставлена финальная точка — стандарт C++26 сформирован. Осталось пройти формальные процедуры ISO, и мы получим один из самых насыщенных релизов за последние годы.


❗️Что войдёт в C++26:

• Reflection
• Контракты
• SIMD и линейная алгебра
• Расширенный constexpr
• Hardening (защитные механизмы)
• Hazard Pointer и RCU
• Executors
• И многое другое


‼️ Несколько интересных деталей из принятых изменений:

🔍 std::is_within_lifetime — теперь умеет не только проверять валидность объекта в compile-time, но и давать информацию о возможности downcast. Это открывает новый класс consteval-функций, позволяющих «расспрашивать» компилятор о скрытых свойствах программы.

🔒 std::atomic_ref::address() теперь возвращает void* вместо T* — чтобы исключить целый класс трудноуловимых ошибок в многопоточном коде.

⚠️ std::views::filter получил частичное исправление подводных камней. Новая рекомендация: всегда использовать std::views::as_input | перед фильтром. Полноценный std::views::safe_filter появится только в C++29, но его несложно реализовать самостоятельно уже сейчас.


Российские разработчики тоже внесли вклад: исправлена переносимость <random> для uint8_t, оптимизирована индирекция при использовании std::function_ref во фреймворке userver.


Что дальше? Комитет уже смотрит в сторону C++29: std::cstring_view, profiles, units и долгожданный pattern matching.


👉 Более подробный обзор


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

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

#буст
💯6👍41😢1
🍿 C++ Ranges. Views и алгоритмы

Продолжаем тему Ranges в C++.

В библиотеке Ranges есть два главных инструмента работы с последовательностями:

1. std::ranges::* алгоритмы — переработанная версия классической библиотеки <algorithm>. Принимают не пару итераторов, а целый диапазон, поддерживают проекции и лучше взаимодействуют с современными типами.

2. std::views::* адаптеры — ленивые обёртки над диапазонами. Не копируют данные, а описывают как их обойти. Удобны для цепочек преобразований.


🐤 Старый стиль vs новый стиль

std::vector<int> v = {5, 3, 1, 4, 2};

// Старый стиль: передаём пару итераторов
std::sort(v.begin(), v.end());

// Новый стиль: передаём весь диапазон
std::ranges::sort(v);


❗️Разница кажется небольшой, но новый стиль:

• Синтаксически короче
• Поддерживают проекции — сортировку по произвольному полю объекта
• Работают с любым range-совместимым типом, не только с контейнерами


Пример 1. Cортировка

#include <algorithm>
#include <vector>
#include <iostream>

int main() {
std::vector<std::string> names = {"Boris", "Anton", "Victor", "Anna"};

std::ranges::sort(names);

for (const auto& name : names) {
std::cout << name << "\n";
}
// Anna, Anton, Boris, Victor
}



Пример 2. Проекции — сортировка по полю структуры

Одна из главных фич ranges-алгоритмов. Не нужно писать лямбду вручную — достаточно указать, по какому полю сортировать:

#include <algorithm>
#include <vector>
#include <iostream>
#include <string>

struct Person {
std::string name;
int age;
};

int main() {
std::vector<Person> people = {
{"Boris", 30},
{"Anna", 25},
{"Victor", 35}
};

// Сортируем по возрасту, передав &Person::age как проекцию
std::ranges::sort(people, {}, &Person::age);

for (const auto& p : people) {
std::cout << p.name << " " << p.age << "\n";
}
// Anna 25, Boris 30, Victor 35
}



Пример 3. Views — ленивые цепочки

std::views не трогают исходный контейнер и не создают копий — они описывают трансформацию, которая применяется при обходе:

#include <ranges>
#include <vector>
#include <iostream>

int main() {
std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8};

// Берём только чётные, умножаем на 10, берём первые 3
auto result = v
| std::views::filter([](int x) { return x % 2 == 0; })
| std::views::transform([](int x) { return x * 10; })
| std::views::take(3);

for (int x : result) {
std::cout << x << "\n";
}
// 20, 40, 60
}


❗️Исходный вектор v не изменился. Весь пайплайн вычисляется лениво — только когда мы итерируемся в цикле.


🐸 Продолжение следует... В следующий раз разбираем pipelines

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

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

#константная_правильность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141❤‍🔥1
🗄️ Исходники Cfront и документы по истории C++ — теперь в открытом доступе

Computer History Museum собрал архив первоисточников по C++: от ранних технических отчётов Bell Labs до исходного кода транслятора Cfront всех релизов.

Cfront Release E (1985) — первый публичный релиз, по словам Страуструпа, написан им лично почти целиком.

Хронология стандартизации: от первого заседания ANSI J16 (1989) до принятия templates, exceptions, RTTI, namespaces и STL.

Оригинальные документы по operator overloading, data abstraction, coroutine-style programming — те самые идеи, которые сегодня оформились в RAII, coroutines и move semantics.

Три HOPL-статьи Страуструпа охватывают эволюцию языка с 1979 по 2020 год — ни один учебник не даёт такой плотности контекста😎

✍️ Насколько современный C++ с его concepts, modules и consteval вообще узнаваем в том, что писал Страуструп в 1979-м?

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

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

#буст
🙏6👍2😁1
😎 Топ-вакансий для C++ разработчиков за неделю

Developer C++ (KSMG) — Удалёнка

Senior Android Security / Reverse Engineer (HTTPS Traffic, Google Services) — от 380 000 и до 500 000 ₽ Удалёнка

C++ Developer (Gates Team) — от 5 000 € Офис (Дубай, Амстердам)

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

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

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

#буст
👍1😁1
😎 Бенчмарк прямо в браузере, без сборки проекта

quick-bench.com — онлайн-бенчмарк на базе Google Benchmark. Пишешь два варианта кода, выбираешь стандарт (C++11–23) и компилятор (GCC или Clang) — и получаешь график сравнения.

❗️Поддержка флагов оптимизации

Можно переключать -O0, -O1, -O2, -O3 и видеть, как меняется разрыв между вариантами. Иногда «медленный» код с -O3 обходит «быстрый» без оптимизаций (Но это не точно😜).

❗️ Шаринг результатов

Каждый бенчмарк получает постоянную ссылку. Удобно в code review: вместо «мне кажется, так быстрее» — вот ссылка с числами.

📚 Библиотека готовых примеров

В сети можно найти примеры бенчмарков от сообщества: std::string vs string_view, heap vs stack, разные контейнеры. Можно учиться на чужих измерениях.

✍️ Теперь ты сможешь поделиться своей ссылкой, чтобы доказать всем что твой код самый быстрый 🤠

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

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

#линкер_рекомендует
🔥81😁1