🚀 CLion теперь бесплатен для некоммерческих проектов!
Компания JetBrains объявила, что их мощная IDE CLion (для C и C++) теперь доступна бесплатно для некоммерческого использования!
Это отличная новость для:
🔹 Студентов и начинающих разработчиков
🔹 Авторов open-source проектов
🔹 Энтузиастов, пишущих код в качестве хобби
Раньше для работы с CLion требовалась подписка, но теперь JetBrains решил снизить порог входа в C/C++ разработку. В 2024 году они уже сделали бесплатными RustRover, Rider и WebStorm, а теперь очередь дошла и до CLion.
Библиотека C/C++ разработчика
Компания JetBrains объявила, что их мощная IDE CLion (для C и C++) теперь доступна бесплатно для некоммерческого использования!
Это отличная новость для:
🔹 Студентов и начинающих разработчиков
🔹 Авторов open-source проектов
🔹 Энтузиастов, пишущих код в качестве хобби
Раньше для работы с CLion требовалась подписка, но теперь JetBrains решил снизить порог входа в C/C++ разработку. В 2024 году они уже сделали бесплатными RustRover, Rider и WebStorm, а теперь очередь дошла и до CLion.
Библиотека C/C++ разработчика
Что выведет код с использованием std::filesystem?
Anonymous Quiz
21%
a/b/c.txt
69%
c.txt
2%
a/b
9%
Ошибка компиляции
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
🔥 Бьярн Страуструп о будущем C++, рисках ИИ и сложности замены языка
Создатель языка C++ Бьярн Страуструп поделился своим видением «C++ 21-го века» на конференции Qt World Summit в Мюнхене.
По его словам, современный C++ — это не просто набор новых функций, а более целостный, эффективный и безопасный язык.
❗Страуструп рекомендует:
• Использовать более прямые конструкции вместо традиционных переменных цикла
• Применять обобщенное программирование с автоматическим выводом типов
• Никогда не использовать «сырые указатели» как ресурсные дескрипторы
• Заменить устаревшие #include на современные import
Страуструп выразил обеспокоенность влиянием ИИ на программирование: «ИИ склоняет людей к устаревшим подходам, а программисты теряют способность выявлять проблемы».
Он также скептически относится к попыткам создать языки-заменители C++: «Легко разработать что-то лучше C++ для узкой области, но одна из сильных сторон C++ — работа в самых разных доменах».
Библиотека C/C++ разработчика
Создатель языка C++ Бьярн Страуструп поделился своим видением «C++ 21-го века» на конференции Qt World Summit в Мюнхене.
По его словам, современный C++ — это не просто набор новых функций, а более целостный, эффективный и безопасный язык.
❗Страуструп рекомендует:
• Использовать более прямые конструкции вместо традиционных переменных цикла
• Применять обобщенное программирование с автоматическим выводом типов
• Никогда не использовать «сырые указатели» как ресурсные дескрипторы
• Заменить устаревшие #include на современные import
Страуструп выразил обеспокоенность влиянием ИИ на программирование: «ИИ склоняет людей к устаревшим подходам, а программисты теряют способность выявлять проблемы».
Он также скептически относится к попыткам создать языки-заменители C++: «Легко разработать что-то лучше C++ для узкой области, но одна из сильных сторон C++ — работа в самых разных доменах».
Библиотека C/C++ разработчика
❓ Что выведет код и какие могут быть проблемы
Пишите свои варианты в комментарии 👇
Библиотека C/C++ разработчика
Пишите свои варианты в комментарии 👇
Библиотека C/C++ разработчика
⌨️ Топ-вакансий для C++разработчиков за неделю
Embedded разработчик C/C++ — до 230 000 ₽ Гибрид (Екатеринбург)
Lead Algorithms and Models L2+ Layer Manager — от 300 000 ₽ Удалёнка (Москва, Санкт-Петербург, Нижний Новгород)
Реверс-инженер / разработчик C/C++ (Windows) — от 200 000 до 300 000 ₽ Офис (Москва)
Senior C++ Qt Developer — от 5 000 до 5 900 $ Удалёнка (Москва)
C++ Developer — 300 000 — 400 000 ₽ Удалёнка
➡️ Еще больше топовых вакансий — в нашем канале C++ jobs
Embedded разработчик C/C++ — до 230 000 ₽ Гибрид (Екатеринбург)
Lead Algorithms and Models L2+ Layer Manager — от 300 000 ₽ Удалёнка (Москва, Санкт-Петербург, Нижний Новгород)
Реверс-инженер / разработчик C/C++ (Windows) — от 200 000 до 300 000 ₽ Офис (Москва)
Senior C++ Qt Developer — от 5 000 до 5 900 $ Удалёнка (Москва)
C++ Developer — 300 000 — 400 000 ₽ Удалёнка
➡️ Еще больше топовых вакансий — в нашем канале C++ jobs
😎 Hint: Оптимизация std::vector
Знаете ли вы, что можно значительно ускорить работу с вектором, если заранее выделить память?
Метод reserve() позволяет избежать многократных перераспределений памяти:
Это может в разы увеличить работу с большими векторами.
Библиотека C/C++ разработчика #буст
Знаете ли вы, что можно значительно ускорить работу с вектором, если заранее выделить память?
Метод reserve() позволяет избежать многократных перераспределений памяти:
std::vector v;
v.reserve(1000); // выделяем память сразу
for(int i = 0; i < 1000; ++i) {
v.push_back(i); // не будет перевыделений памяти
}
Это может в разы увеличить работу с большими векторами.
Библиотека C/C++ разработчика #буст
✅ Грин-флаги в вакансиях: 10 признаков хорошего работодателя
Прозрачная зарплата, четкое описание обязанностей и конкретные условия работы — это лишь часть признаков качественной вакансии. На примерах из реальных объявлений о работе мы покажем, как отфильтровать предложения и выбрать компанию, в которой вы действительно захотите работать.
В статье рассматривается ключевые «грин-флаги» на примерах из реальных вакансий.
👉 Читать статью
Библиотека C/C++ разработчика
Прозрачная зарплата, четкое описание обязанностей и конкретные условия работы — это лишь часть признаков качественной вакансии. На примерах из реальных объявлений о работе мы покажем, как отфильтровать предложения и выбрать компанию, в которой вы действительно захотите работать.
В статье рассматривается ключевые «грин-флаги» на примерах из реальных вакансий.
👉 Читать статью
Библиотека C/C++ разработчика
Устали от споров «что лучше передать: вектор, массив или указатель с длиной»? C++20 предлагает элегантное решение!
#include <span>
#include <vector>
#include <array>
// ✅ Функция работает с ЛЮБЫМ непрерывным контейнером!
void processData(std::span<const int> data) {
for (const auto& item : data) {
// Обработка
}
}
int main() {
// Работает с std::vector
std::vector<int> vec = {1, 2, 3, 4, 5};
processData(vec);
// Работает с std::array
std::array<int, 3> arr = {10, 20, 30};
processData(arr);
// Работает с C-массивами
int classic[] = {100, 200, 300};
processData(classic);
// Работает с подпоследовательностями!
processData(std::span(vec).subspan(1, 3)); // Только элементы 2,3,4
}
- Не владеет данными (zero overhead)
- Безопасно передает подпоследовательности
- Унифицированный интерфейс для всех контейнеров
- Выразительный код без шаблонных параметров
Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Есть желание использовать современные языковые фитчи, но переписывать код в ручную долго и скучно, тогда можно воспользоваться помощью искусственного интеллекта😄
Для того чтобы сделать свой код более современным используй следующий промпт:
Refactor the following code to modern [Тут напиши стандарт] programming standards:
[Сюда вставь свой код]
Refactor the following code to modern c++23 programming standards:
int* createIntArray(int size) {
int* arr = new int[size];
for (int i = 0; i < size; ++i) {
arr[i] = i * i;
}
return arr;
}
#include <memory>
#include <vector>
#include <algorithm>
// Option 1: Return a std::vector (recommended for most cases)
auto createIntArray(int size) -> std::vector<int> {
std::vector<int> arr(size);
std::ranges::generate(arr, [i = 0]() mutable { return i * i++; });
return arr;
}
// Option 2: Return a std::unique_ptr (if you specifically need heap allocation)
auto createIntArrayUnique(int size) -> std::unique_ptr<int[]> {
auto arr = std::make_unique<int[]>(size);
for (int i = 0; i < size; ++i) {
arr[i] = i * i;
}
return arr;
}
Это достаточно простой и быстрый способ привести код к текущему стандарту. К сожалению результат работы промпта всё де придётся проверить, так как текущая реализация AI далека от идеала, но даже так времени можно сэкономить массу.
Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Любителям x86-64 assembler посвящается: DIY волокна в C++
💡 Автор статьи погружается в захватывающий мир волокон в C++ и показывает, как реализовать их без поддержки компилятора с помощью ассемблерных вставок.
❗ Ключевые моменты статьи:
• волокна — наименьшая единица исполнения, невидимая для ядра ОС
• переключение контекста происходит через
• различия реализации для 32- и 64-битных систем
Основной фокус — практическая реализация своих собственных волокон с детальным разбором управления стеком, переключения контекста и жизненного цикла волокна от создания до завершения.
Статья будет особенно полезна C++ разработчикам, интересующимся низкоуровневым программированием и оптимизацией производительности без использования системных вызовов.
Вы узнаете, как избежать дорогостоящих переключений между
Библиотека C/C++ разработчика #буст
💡 Автор статьи погружается в захватывающий мир волокон в C++ и показывает, как реализовать их без поддержки компилятора с помощью ассемблерных вставок.
❗ Ключевые моменты статьи:
• волокна — наименьшая единица исполнения, невидимая для ядра ОС
• переключение контекста происходит через
yield()
без обращения к ядру• различия реализации для 32- и 64-битных систем
Основной фокус — практическая реализация своих собственных волокон с детальным разбором управления стеком, переключения контекста и жизненного цикла волокна от создания до завершения.
Статья будет особенно полезна C++ разработчикам, интересующимся низкоуровневым программированием и оптимизацией производительности без использования системных вызовов.
Вы узнаете, как избежать дорогостоящих переключений между
user space
и kernel space
, но помните — с большой силой приходит большая ответственность: неправильная работа со стеком может привести к непредсказуемым последствиям в вашей программе.Библиотека C/C++ разработчика #буст