⚡️ Фича дня: условный оператор с инициализацией
Часто перед условным оператором нужно объявить временную переменную, что загромождает область видимости и увеличивает вероятность ошибок.
Инициализация переменных прямо в условии if/switch (C++17) позволяет ограничить область видимости только блоком условия.
🔴 До:
🟢 После:
Примеры использования:
- Поиск в контейнерах с проверкой результата
- Вызов функций с проверкой возвращаемого значения
- Инициализация мьютексов с последующей блокировкой
💡 Как думаете, улучшает ли это читаемость кода?
Библиотека C/C++ разработчика #буст
Часто перед условным оператором нужно объявить временную переменную, что загромождает область видимости и увеличивает вероятность ошибок.
Инициализация переменных прямо в условии if/switch (C++17) позволяет ограничить область видимости только блоком условия.
🔴 До:
auto it = map.find(key);
if (it != map.end()) {
// Используем it->second
}
🟢 После:
if (auto it = map.find(key); it != map.end()) {
// Используем it->second
}
Примеры использования:
- Поиск в контейнерах с проверкой результата
- Вызов функций с проверкой возвращаемого значения
- Инициализация мьютексов с последующей блокировкой
💡 Как думаете, улучшает ли это читаемость кода?
Библиотека C/C++ разработчика #буст
🔥 std::vector в Си?
💡 Автор статьи разработал свою реализацию аналога std::vector для языка Си после анализа существующих решений, которые не подходили по ряду причин.
❗ Ключевые моменты статьи:
• обращение к элементам напрямую без лишних структур
• инкапсуляция метаданных вектора от пользователя
• минимальное использование макросов, только для удобства API
Основной фокус — элегантное инженерное решение: выделение памяти под структуру и данные одним блоком, с возвратом указателя на данные, которые идут сразу после структуры.
Особенно актуально для C-разработчиков, которые хотят получить удобство контейнеров C++ без смены языка программирования.
💡 Автор статьи разработал свою реализацию аналога std::vector для языка Си после анализа существующих решений, которые не подходили по ряду причин.
❗ Ключевые моменты статьи:
• обращение к элементам напрямую без лишних структур
• инкапсуляция метаданных вектора от пользователя
• минимальное использование макросов, только для удобства API
Основной фокус — элегантное инженерное решение: выделение памяти под структуру и данные одним блоком, с возвратом указателя на данные, которые идут сразу после структуры.
Особенно актуально для C-разработчиков, которые хотят получить удобство контейнеров C++ без смены языка программирования.
🚀 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
18%
a/b/c.txt
73%
c.txt
1%
a/b
8%
Ошибка компиляции