es
Feedback

¡No caigas en manos de tramposos! Telemetrio encuentra y marca estos canales 👉 Si quieres ver la etiqueta, suscríbete

Библиотека C/C++ разработчика | cpp, boost, qt

Библиотека C/C++ разработчика | cpp, boost, qt

Ir al canal en Telegram

Все самое полезное для плюсовика и сишника в одном канале. Как запустить своего ии-агента: https://clc.to/tvpmDQ По рекламе: @tproger_sales_bot Обратная связь: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17 #WXSSA

Mostrar más

📈 Análisis del canal de Telegram Библиотека C/C++ разработчика | cpp, boost, qt

El canal Библиотека C/C++ разработчика | cpp, boost, qt (@cppproglib) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 16 819 suscriptores, ocupando la posición 7 686 en la categoría Tecnologías y Aplicaciones y el puesto 39 072 en la región Rusia.

📊 Métricas de audiencia y dinámica

Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 16 819 suscriptores.

Según los últimos datos del 25 octubre, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -40, y en las últimas 24 horas de -7, conservando un alto alcance.

  • Estado de verificación: No verificado
  • Tasa de interacción (ER): El promedio de interacción de la audiencia es 10.25%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 4.49% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 1 724 visualizaciones. En el primer día suele acumular 756 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 2.
  • Intereses temáticos: El contenido se centra en temas clave como c++, навигация, компилятор, удалёнка, developer.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Все самое полезное для плюсовика и сишника в одном канале. Как запустить своего ии-агента: https://clc.to/tvpmDQ По рекламе: @tproger_sales_bot Обратная связь: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17 #W...”

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 26 octubre, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.

16 819
Suscriptores
-724 horas
-77 días
-4030 días
Archivo de publicaciones
🥳 Ranges в C++23 C++23 значительно расширил библиотеку Ranges. Рассмотрим важнейшие добавления. 1️⃣ ranges::to — материализация диапазонов Раньше преобразование view в контейнер было неудобным:
// C++20: нужно было делать так
std::vector<int> v = {1, 2, 3, 4, 5};
auto view = v | views::filter([](int x) { return x > 2; });

std::vector<int> result(view.begin(), view.end()); // громоздко!
C++23 добавляет std::ranges::to:
// C++23: красиво и лаконично
auto result = v
    | views::filter([](int x) { return x > 2; })
    | std::ranges::to<std::vector>();
// result = {3, 4, 5}

// Можно указать тип элементов явно
auto strs = views::iota(1, 6)
    | views::transform([](int x){ return std::to_string(x); })
    | std::ranges::to<std::vector<std::string>>();
// strs = {"1", "2", "3", "4", "5"}

// Работает и с другими контейнерами
auto s = some_range | std::ranges::to<std::set>();
auto m = pairs_range | std::ranges::to<std::map>();
2️⃣ Новые адаптеры C++23 views::zip_transform — zip + transform в одном
std::vector<int> a = {1, 2, 3};
std::vector<int> b = {10, 20, 30};

// Попарная сумма
auto sums = views::zip_transform(std::plus{}, a, b);
// 11, 22, 33
views::adjacent — соседние N-ки
std::vector<int> v = {1, 2, 3, 4, 5};

// Пары соседних элементов
for (auto [a, b] : v | views::adjacent<2>) {
    std::cout << "(" << a << "," << b << ") "; // (1,2) (2,3) (3,4) (4,5)
}

// Тройки
for (auto [a, b, c] : v | views::adjacent<3>) {
    std::cout << a+b+c << " "; // 6 9 12
}
views::adjacent_transform — скользящая функция
std::vector<int> v = {1, 2, 3, 4, 5};

// Скользящий максимум из двух соседних элементов
auto sliding_max = v | views::adjacent_transform<2>(
    [](int a, int b) { return std::max(a, b); }
);
// 2, 3, 4, 5
views::slide — скользящее окно
std::vector<int> v = {1, 2, 3, 4, 5};

// Скользящее окно размером 3
for (auto window : v | views::slide(3)) {
    for (int x : window) std::cout << x << " ";
    std::cout << "| ";
}
// 1 2 3 | 2 3 4 | 3 4 5 |
views::cartesian_product — декартово произведение
std::vector<int> xs = {1, 2};
std::vector<char> ys = {'a', 'b', 'c'};

for (auto [x, y] : views::cartesian_product(xs, ys)) {
    std::cout << "(" << x << "," << y << ") ";
}
// (1,a) (1,b) (1,c) (2,a) (2,b) (2,c)
3️⃣ std::generator — корутины как диапазоны C++23 добавляет std::generator<T> — корутину, которая является диапазоном:
#include <generator> // C++23

std::generator<int> fibonacci() {
    int a = 0, b = 1;
    while (true) {
        co_yield a;
        auto next = a + b;
        a = b;
        b = next;
    }
}

// Использование как обычного диапазона!
for (int f : fibonacci() | views::take(10)) {
    std::cout << f << " "; // 0 1 1 2 3 5 8 13 21 34
}

// Можно комбинировать с другими адаптерами
auto big_fibs = fibonacci()
    | views::filter([](int x) { return x > 100; })
    | views::take(5);
❗️Это мощно: теперь можно писать генераторы в естественном императивном стиле, а использовать их — в функциональном стиле через конвейеры. 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #константная_правильность

🤢 Чем больше разработчиков в команде начинают пользоваться Claude Code, тем заметнее одна проблема: кодовая база перестаёт в
🤢 Чем больше разработчиков в команде начинают пользоваться Claude Code, тем заметнее одна проблема: кодовая база перестаёт выглядеть как работа одной команды. Где-то есть тесты, где-то их забыли. Где-то агент следует архитектуре проекта, где-то предлагает решение, которое с ней не сочетается. ⚠️ И это не проблема Claude Code. Он просто следует тому контексту, который получает от каждого разработчика. Завтра покажем, как передать AI инженерный контекст команды и не превратить его внедрение в ещё один источник хаоса. 🗓 23 июля, 19:00 МСК Бесплатно. 60 минут доклада + 30 минут вопросов. 🔗 Занять место на вебинаре и разобраться, почему так происходит 🏃‍♀️ Proglib Academy

🎹 Скорость разработки растёт, но вместе с ней появляется новая проблема — кодовая база быстро теряет единый стиль. Ниже — бесплатный вебинар о том, как этого избежать 📍

Что такое loop unrolling (развёртывание цикла)?
Anonymous voting

😸 Каждый разработчик подходит к задаче со своим опытом: помнит прошлые решения, знает ограничения проекта и понимает, какой
😸 Каждый разработчик подходит к задаче со своим опытом: помнит прошлые решения, знает ограничения проекта и понимает, какой код команда пропустит на ревью. Для человека это естественная часть работы. У Claude Code этого контекста по умолчанию нет — только задача и инструкции, которые ему дали.
Поэтому в большой команде недостаточно просто выбрать хорошую модель. ❗️ Нужно ещё объяснить ей, как у вас устроена разработка: какие подходы приняты, что обязательно проверять и по каким правилам принимать решения.
🗓 23 июля в 19:00 МСК поговорим об этом на бесплатном вебинаре с Алексеем Жиряковым — он Executive Director в Сбере, руководит GenAI Data Platform, и с этой проблемой сталкивался не раз 🔥 Покажет живое демо, разберём, как встроить AI в процесс разработки так, чтобы он реально помогал, а не добавлял ещё один повод для споров на ревью. 🔗 Занять место на вебинаре 🏃‍♀️ Proglib Academy

✏️ Если вы уже работаете с Claude Code, Cursor или Copilot, этот вебинар будет особенно полезен. Разберут, как превратить AI из инструмента для отдельных задач в часть инженерного процесса ⬇️

🔀 Как айтишнику оформить отношения с работодателем: разбираем ТД, ГПХ, самозанятость и ИП Подробный гайд по видам трудоустро
🔀 Как айтишнику оформить отношения с работодателем: разбираем ТД, ГПХ, самозанятость и ИП Подробный гайд по видам трудоустройства в IT-сфере. Разбираем особенности, налоговые ставки, социальные гарантии и подводные камни каждого из популярных форматов сотрудничества. 👉 Статья Азбука айтишника #свежак

🧑‍💻 Учиться агентной разработке — у тех, кто уже внедряет её в бигтехе Курс «ИИ для разработчиков» ведут практики из ведущи
🧑‍💻 Учиться агентной разработке — у тех, кто уже внедряет её в бигтехе Курс «ИИ для разработчиков» ведут практики из ведущих российских IT-компаний 🔥 🔵 Они прошли путь от первых экспериментов с AI до рабочих процессов, в которых агенты помогают команде писать код, готовить PR и быстрее доводить задачи до продакшена. В ближайшее время познакомим вас с каждым преподавателем. Программа курса — по ссылке 🎹 🏃‍♀️ Proglib Academy

📍 Курс — это не только темы и домашние задания Во многом его ценность определяет опыт тех, кто его разрабатывает и ведёт. Об этом как раз новый пост Proglib Academy 🔥

🏃‍♀️ Proglib Academy #развлекалово
🏃‍♀️ Proglib Academy #развлекалово

🫡 Один и тот же запрос к AI можно выполнить двумя способами — и получить совершенно разный результат. 1️⃣ способ — просто по
🫡 Один и тот же запрос к AI можно выполнить двумя способами — и получить совершенно разный результат. 1️⃣ способ — просто попросить написать код. Модель может сгенерировать рабочее решение, но именно на этапе проверки часто всплывают пропущенные edge case’ы, ошибки обработки или проблемы с тестами. 2️⃣ способ — дать агенту цикл Think → Act → Observe. Он не останавливается после первой попытки: планирует действия, проверяет результат и, если находит ошибку, исправляет её и пробует снова. Самое интересное, что разница здесь не столько в модели ❕ Claude, GPT или другая LLM могут быть одинаковыми. Разницу создаёт инженерная система вокруг них. 📅 Именно это разберём 23 июля в 19:00 (МСК) на бесплатном вебинаре с Алексеем Жиряковым (Executive Director в Сбере, GenAI Data Platform, ex-CTO Stream и KION). На живом демо покажем, как один и тот же запрос работает без агентной системы и с ней 🔥 🔗 Регистрация 🏃‍♀️ Proglib Academy

🍙 Sentinel: нестандартный конец диапазона В прошлом посте stride_view отдавал из end() пустую stride_sentinel{}, а итератор сам таскал внутри end_ и сравнивался с ним. Это уже был sentinel — просто самый скромный его вид. Сегодня посмотрим, на что sentinel способен, когда условие конца живёт в нём самом. 🍬 Итератор говорит «где», sentinel — «когда стоп» Обычный end() в STL — это итератор на позицию за последним элементом. Чтобы его получить, позицию надо знать заранее. Sentinel ломает это правило. Он не хранит позицию — он хранит условие остановки. Итератор шагает вперёд и на каждом шаге как бы спрашивает: «мы уже приехали?». Sentinel отвечает, глядя не на свой адрес, а на то, куда сейчас показывает итератор. 🍴 Классика жанра — C-строки У C-строки нет заранее известного конца: он определяется на лету — идём, пока не встретим '\0'. Идеальный кейс для sentinel:
struct null_sentinel_t {
    // 🔴 Сравниваем не адреса, а СОДЕРЖИМОЕ:
    // итератор == концу, если он смотрит на '\0'
    bool operator==(const char* ptr) const { return *ptr == '\0'; }
};

inline constexpr null_sentinel_t null_sentinel{};

struct cstring_range {
    const char* ptr;
    const char*     begin() const { return ptr; }            // обычный итератор
    null_sentinel_t end()   const { return null_sentinel; }  // sentinel другого типа!
};

// Использование
const char* str = "hello";
for (char c : cstring_range{str}) {
    std::cout << c;  // hello
}
❗️Обрати внимание: begin() возвращает const char*, а end() — null_sentinel_t. Разные типы! Range-based for это разрешает ещё с C++17, а C++20 добавляет it != null_sentinel сам разворачивается в !null_sentinel.operator==(it). Пишешь один operator== — и обе стороны, и != работают бесплатно. ❓ Зачем вообще так заморачиваться 🥝 Ленивый конец. Не нужно звать strlen и проходить строку дважды — конец «находится» прямо во время итерации. ♾️ Бесконечные диапазоны. У генераторов, потоков, views::iota без верхней границы конца-позиции просто нет. Sentinel — единственный способ вообще описать такой диапазон. ⚡️ Дешёвое сравнение. Проверить условие (== '\0', счётчик дошёл до нуля) часто быстрее, чем сравнивать два итератора. 🥳 В стандартной библиотеке это уже есть Свой sentinel писать нужно не всегда. В STL живёт std::default_sentinel_t (объект std::default_sentinel) — та самая пустая заглушка, которой пользуются counted_iterator, istream_view и куча вьюх. А для честно бесконечных диапазонов есть std::unreachable_sentinel — «мы не доедем никогда», и компилятор с чистой совестью выкидывает проверки границ. 🫰 std::ranges поддерживает нестандартные sentinel-ы из коробки: достаточно, чтобы для пары <итератор, sentinel> выполнялся концепт std::sentinel_for — и твой тип поедет во все алгоритмы ranges наравне с обычными итераторами. 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #под_капотом

💡 Свой парсер C++ на самодельном DSL Компиляция большого C++ проекта разрастается до неприличных времён, но можно написать замену Clang/GCC/CL.EXE, начав с парсера. • Парсер не пишется руками: грамматика на своём языке QapDSLv2 • На выходе CST, а не AST — с пробелами и комментариями • Покрыто почти всё: 16 уровней приоритетов операторов, шаблоны, лямбды, структурное связывание. • Неоднозначности решены грубо: T<1>(2) всегда шаблон, struct S {...}; ❗️Автор честен: проект вот-вот упрётся в лимит памяти при собственной сборке и рискует тихо умереть, но с другой стороны со стороны погружения в тему интересен. Код открыт на GitHub. 🔥 Статья 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #под_капотом

🍴 Rule of Zero: лучший Fab Four — тот, что ты не писал Идеальный класс не содержит ни одного из пяти методов. Это не лень — это архитектурный принцип, который снижает количество багов. 🍒 Rule of Zero Если каждое поле само корректно управляет своим ресурсом (std::string, std::vector, std::unique_ptr), то классу-агрегату не нужны свои Fab Four. Компилятор сгенерирует правильные почленные версии.
struct User {
    std::string name;
    std::vector<int> scores;
    std::unique_ptr<Db> conn;
};
// move + dtor — сгенерированы, корректны и БЕСПЛАТНЫ
// copy — корректно УДАЛЁН: unique_ptr некопируем → User тоже (move-only тип)
❗️Почему работает: почленное перемещение вызовет move у каждого поля. string украдёт буфер, vector — массив, unique_ptr — указатель. Тебе не нужно писать ни строки. ❗️ Ключевое условие — не объявлять деструктор. И ~User(){}, и ~User() = default одинаково опасны: любой user-declared деструктор отключает неявную генерацию move. ✏️ Твои классы владеют new/delete напрямую — или прячут их в unique_ptr и живут по Rule of Zero? 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #под_капотом

🔥 Курс «Разработка ИИ-агентов» стартовал, но вы еще успеваете присоединиться! Мы только начали, а первый практический воркшо
🔥 Курс «Разработка ИИ-агентов» стартовал, но вы еще успеваете присоединиться! Мы только начали, а первый практический воркшоп пройдет только 23 июля. До этого времени вы спокойно успеете изучить материалы и нагнать группу. 💼 Главная фишка: финальный проект в портфолио:
В финальном проекте вы сможете выбрать один из двух вариантов: реализовать свою идею или решить задачу от партнера курса — крупной российской финтех-компании. Вы будете работать с датасетом, построенным по реальным сценариям, получите бизнес-контекст и продовые ограничения. В результате соберете AI-агента, который станет сильным проектом для портфолио.
🎁 Упомяните менеджеру специальное предложение «3 курса по цене 1»: Берете VIP-тариф — получаете курс «Разработка ИИ-агентов», хардкорный «AgentOps» и ещё один курс на выбор. Выгода 129.000 ₽! Двери потока вот-вот закроются окончательно. Успейте забрать стек курсов и начать работу над реальным проектом 🔗 Занять место и забрать 3 курса

🤖 У нас уже отобрали работу роботы или есть другие угрозы? Забудь про апокалиптичные прогнозы «AI отберет работу». Реальност
🤖 У нас уже отобрали работу роботы или есть другие угрозы? Забудь про апокалиптичные прогнозы «AI отберет работу». Реальность интереснее и коварнее: появились новые правила игры, новые способы обмана заказчиков и новая ценность для тех, кто умеет думать головой. Разбираю пять таких сдвигов. 👉 Статья Азбука айтишника #свежак