💬 Истории подписчиков: Google Test vs Catch2 vs собственный framework
Недавно один из читателей поделился своей историей — возможно, она откликнется и вам:
🤔 А вы какой фреймворк используете в своих проектах?
Библиотека C/C++ разработчика #междусобойчик
Недавно один из читателей поделился своей историей — возможно, она откликнется и вам:
Работаю над embedded системой на C++, нужно покрыть тестами критичный код. Использую Google Test уже два года, но начинаю сомневаться в выборе. Фреймворк тяжелый, долго компилируется, плюс не всегда удобно для embedded разработки.
Попробовал Catch2 — понравилось! Header-only, быстрая компиляция, красивые assertion'ы. Но есть проблема: на некоторых микроконтроллерах не хватает памяти для всех template instantiation'ов.
Коллега использует doctest — еще более легковесный, но менее функциональный. Много чего нету. Есть еще Boost.Test, но это еще одна зависимость.
Думаю о том, чтобы написать минималистичный тест фреймворк именно под embedded. Но боюсь, что это будет изобретение велосипеда по новой, и потрачу время на то, что уже решено.
🤔 А вы какой фреймворк используете в своих проектах?
Библиотека C/C++ разработчика #междусобойчик
❤🔥4❤2🔥2🤩1
Media is too big
VIEW IN TELEGRAM
Как относитесь к созданию своего жпт не через конструктор, а хардкорно через код?
🔥 — я своего завайбкодил
🏃♀️ Ссылка на курс
🔥 — я своего завайбкодил
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱4
🚀 Мгновенное создание реализаций методов класса
Проблема: 🤔 При разработке классов в C++ приходится сначала объявлять методы в заголовочном файле, а затем вручную создавать их реализации в .cpp файле, что требует времени и может привести к ошибкам.
Решение: 🎯 Автоматическое создание реализаций методов класса в соответствующем .cpp файле.
✅ Комбинации клавиш:
• CLion:
• Visual Studio:
• VSCode (с C/C++ расширением):
📝 Процесс в CLion:
• Объявите методы в заголовочном файле
• Нажмите
• Выберите
• Выберите методы для реализации и целевой файл
• Все выбранные методы будут автоматически созданы с правильным синтаксисом
💡 Эта функция также позволяет:
• Генерировать стандартные методы (конструкторы, деструкторы, операторы)
• Создать все недостающие реализации методов сразу
• Добавлять реализации в уже существующие файлы
Библиотека C/C++ разработчика #буст
Проблема: 🤔 При разработке классов в C++ приходится сначала объявлять методы в заголовочном файле, а затем вручную создавать их реализации в .cpp файле, что требует времени и может привести к ошибкам.
Решение: 🎯 Автоматическое создание реализаций методов класса в соответствующем .cpp файле.
✅ Комбинации клавиш:
• CLion:
Alt+Enter
на объявлении → Implement methods
• Visual Studio:
Ctrl+.
на объявлении → Implement all missing members
• VSCode (с C/C++ расширением):
Alt+Shift+I
📝 Процесс в CLion:
• Объявите методы в заголовочном файле
• Нажмите
Alt+Enter
на имени класса• Выберите
Implement methods
• Выберите методы для реализации и целевой файл
• Все выбранные методы будут автоматически созданы с правильным синтаксисом
💡 Эта функция также позволяет:
• Генерировать стандартные методы (конструкторы, деструкторы, операторы)
• Создать все недостающие реализации методов сразу
• Добавлять реализации в уже существующие файлы
Библиотека C/C++ разработчика #буст
❤4👍2🙏2
Группа Астра приглашает на встречу всех, кто связал свою жизнь с С++.
Мы собрали команду экспертов, чтобы этот вечер стал саундтреком твоего лета. Приходи — настроимся на волну креатива, обменяемся опытом и создадим свой летний хит из кода и музыки!
В программе:
⭐️«Использование С++ библиотек при разработке прикладных решений в Astra Linux»
⭐️ «C++ как производительный runtime для микросервисов»: обсудим подход, при котором C++ усиливает Node.js, а Node.js ускоряет интерфейсную часть C++-систем.
⭐️«Дайджест по нейросетям и их применению в ИТ»
И это ещё не все:
Вас ждем холиварный сейшен с экспертами: «С++ мертв или нет» . Обсуждаем эффективные практики и методы использования С++ в задачах разработки и интеграции.
И, конечно, перерыв на пенное 🍻
📍Встречаемся на Бауманская ул., 11, стр. 8 — около 10 минут от м. Бауманская или м. Красносельская.
Подробности и регистрация тут.
Реклама. ООО "РУСБИТЕХ-АСТРА", ИНН: 7726388700. erid: 2VtzqwUwkkf
Мы собрали команду экспертов, чтобы этот вечер стал саундтреком твоего лета. Приходи — настроимся на волну креатива, обменяемся опытом и создадим свой летний хит из кода и музыки!
В программе:
⭐️«Использование С++ библиотек при разработке прикладных решений в Astra Linux»
⭐️ «C++ как производительный runtime для микросервисов»: обсудим подход, при котором C++ усиливает Node.js, а Node.js ускоряет интерфейсную часть C++-систем.
⭐️«Дайджест по нейросетям и их применению в ИТ»
И это ещё не все:
Вас ждем холиварный сейшен с экспертами: «С++ мертв или нет» . Обсуждаем эффективные практики и методы использования С++ в задачах разработки и интеграции.
И, конечно, перерыв на пенное 🍻
📍Встречаемся на Бауманская ул., 11, стр. 8 — около 10 минут от м. Бауманская или м. Красносельская.
Подробности и регистрация тут.
Реклама. ООО "РУСБИТЕХ-АСТРА", ИНН: 7726388700. erid: 2VtzqwUwkkf
❤4🥰2🔥1
«Хочу скорость C++, но удобство Python для отладки и экспериментов» — знакомая дилемма многих разработчиков при работе с вычислительными задачами.
💡 Рассматриваем два подхода к интеграции C++ с Python: PyBind11 vs ctypes, их плюсы и подводные камни.
❗️ Ключевые моменты статьи:
• PyBind11 обеспечивает высокоуровневую интеграцию с автоматическим преобразованием типов
• ctypes — низкоуровневое решение с множеством ограничений
• полная интеграция с Numpy и Eigen из коробки через PyBind11
Основной фокус — создание Facade-класса для простого API между языками и настройка CMake для автоматической сборки.
Особенно актуально для проектов машинного обучения, численных вычислений и научных исследований, где нужна производительность C++ с интерактивностью Python.
⚠️ Важный подводный камень: после перекомпиляции C++ кода модуль Python не перезагружается автоматически — требуется полный перезапуск сессии Python.
👉 Статья
Библиотека C/C++ разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🥱2👍1😁1
😆 Самые быстрые штуки на земле:
• Гепард
• Самолёт
• Скорость света
• Приложения, которые я перенёс с Python на C++
Библиотека C/C++ разработчика #развлекалово
• Гепард
• Самолёт
• Скорость света
• Приложения, которые я перенёс с Python на C++
Библиотека C/C++ разработчика #развлекалово
😁25❤2👍1👏1
Загадка: Я не член семьи, но мне доверяют семейные секреты. Я могу войти в дом без стука. Кто я?
😼 Ответ пишите в комментариях.
Библиотека C/C++ разработчика #междусобойчик
😼 Ответ пишите в комментариях.
Библиотека C/C++ разработчика #междусобойчик
❤2
📰 Свеженькое из мира C++
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
😎 Полезное:
• Генерация документации из кода — автогенерация документация кода в Doxygen
• Тезисы о std::set и std::multiset в C++ — статья в которой разбираются ключевые различия между
• Особенности std::unreachable — полезная фишка, которую можно использовать для оптимизации
• Создание юнит-тестов для надёжного кода — способ создания юнит-тестов с помощью AI
• Мгновенное создание реализаций методов класса — автореализация методов с помощью IDE
• Основные способы вызова C++ кода из Python — основные возможности совместного использования Python и C++
🖨Интересные проекты:
• Carbon Language — язык общего назначения, созданный Google как
• MuseScore — это бесплатная программа для записи нот
• pybind11 — библиотека состоящая только из заголовков, которая представляет типы
Библиотека C/C++ разработчика #свежак
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
😎 Полезное:
• Генерация документации из кода — автогенерация документация кода в Doxygen
• Тезисы о std::set и std::multiset в C++ — статья в которой разбираются ключевые различия между
std::set
и std::multiset
• Особенности std::unreachable — полезная фишка, которую можно использовать для оптимизации
• Создание юнит-тестов для надёжного кода — способ создания юнит-тестов с помощью AI
• Мгновенное создание реализаций методов класса — автореализация методов с помощью IDE
• Основные способы вызова C++ кода из Python — основные возможности совместного использования Python и C++
🖨Интересные проекты:
• Carbon Language — язык общего назначения, созданный Google как
приемник C++
• MuseScore — это бесплатная программа для записи нот
• pybind11 — библиотека состоящая только из заголовков, которая представляет типы
C++
в Python
и наоборотБиблиотека C/C++ разработчика #свежак
❤1👍1🔥1