Lightning Talk: Let's Write a Lambda in C++ - Ben Deane - CppCon 2023
https://www.youtube.com/watch?v=EqiLTgQcDPM
#cpp #programming
👉 @cpp_lib
https://www.youtube.com/watch?v=EqiLTgQcDPM
#cpp #programming
👉 @cpp_lib
YouTube
Lightning Talk: Let's Write a Lambda in C++ - Ben Deane - CppCon 2023
https://cppcon.org/
---
Lightning Talk: Let's Write a Lambda in C++ - Ben Deane - CppCon 2023
https://github.com/CppCon/CppCon2023
What can go into a lambda expression? Let's put in all the things.
---
Ben Deane
Ben has been programming in C++ for this…
---
Lightning Talk: Let's Write a Lambda in C++ - Ben Deane - CppCon 2023
https://github.com/CppCon/CppCon2023
What can go into a lambda expression? Let's put in all the things.
---
Ben Deane
Ben has been programming in C++ for this…
🤷♂1👍1
Как выстрелить себе в ногу в C и C++. Сборник рецептов Haiku OS
История встречи статического анализатора PVS-Studio с кодом операционной системы Haiku уходит в далёкий 2015-й год. Это был интереснейший эксперимент и полезный опыт для команд обоих проектов. Почему эксперимент? Анализатора для Linux тогда не было и не будет ещё полтора года. Но труды энтузиастов нашей команды были вознаграждены: мы познакомились с разработчиками Haiku и повысили качество кода, пополнили базу редкими ошибками программистов и доработали анализатор. Сейчас проверить код Haiku на наличие ошибок можно легко и быстро.
https://habr.com/ru/companies/pvs-studio/articles/461255/
#cpp #programming
👉 @cpp_lib
История встречи статического анализатора PVS-Studio с кодом операционной системы Haiku уходит в далёкий 2015-й год. Это был интереснейший эксперимент и полезный опыт для команд обоих проектов. Почему эксперимент? Анализатора для Linux тогда не было и не будет ещё полтора года. Но труды энтузиастов нашей команды были вознаграждены: мы познакомились с разработчиками Haiku и повысили качество кода, пополнили базу редкими ошибками программистов и доработали анализатор. Сейчас проверить код Haiku на наличие ошибок можно легко и быстро.
https://habr.com/ru/companies/pvs-studio/articles/461255/
#cpp #programming
👉 @cpp_lib
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Основы программирования на С/C++
Что такое IDE?
Почему стоит изучать С++?
Работа в Visual Studio C++ #1
Первая программа на С++
#5 Escape последовательности и Raw-строки в C++
Основные понятия языка С++
Представление чисел в памяти компьютера
Переменные и типы данных в С++
Локальные и глобальные переменные
Литералы
Потоковый ввод вывод в С++
.
.
.
Стек вызовов
Перегрузка и шаблоны функций в С++
Хвостовой возвращаемый тип в С++
Параметры по умолчанию в функции С/С++
Рекурсивные алгоритмы на языке С++
Указатель на функцию в языке С++
Динамическая память в языке С
Динамическая память в языке C++
Пример задачи на работу с динамической памятью в С++
Двумерный динамический массивна Еськова. Основы программирования
Доступно 56 видео
#cpp #programming
👉 @cpp_lib
Что такое IDE?
Почему стоит изучать С++?
Работа в Visual Studio C++ #1
Первая программа на С++
#5 Escape последовательности и Raw-строки в C++
Основные понятия языка С++
Представление чисел в памяти компьютера
Переменные и типы данных в С++
Локальные и глобальные переменные
Литералы
Потоковый ввод вывод в С++
.
.
.
Стек вызовов
Перегрузка и шаблоны функций в С++
Хвостовой возвращаемый тип в С++
Параметры по умолчанию в функции С/С++
Рекурсивные алгоритмы на языке С++
Указатель на функцию в языке С++
Динамическая память в языке С
Динамическая память в языке C++
Пример задачи на работу с динамической памятью в С++
Двумерный динамический массивна Еськова. Основы программирования
Доступно 56 видео
#cpp #programming
👉 @cpp_lib
👍8⚡1
This media is not supported in your browser
VIEW IN TELEGRAM
Как написать 2D игру на C++ и чистом STL для терминала в Linux
Привет, Хабр, я PHP разработчик с опытом работы в продакшне более 8 лет. После долгого и упорного труда мне стало скучно пилить микросервисы и бэкенды в хайлоде, я решил постичь магию разработки игр. Выбрал курс по Unreal Engine 5 и C++, так как там все структурировано, понятно, и в случае необходимости есть кому задать вопрос. На первой лекции по основам С++ преподаватель сразу предложил челлендж - написать 2D игру без использования игрового движка. Идея мне понравилась и я сразу приступил к реализации.
https://habr.com/ru/post/708486/
#cpp #programming
👉 @cpp_lib
Привет, Хабр, я PHP разработчик с опытом работы в продакшне более 8 лет. После долгого и упорного труда мне стало скучно пилить микросервисы и бэкенды в хайлоде, я решил постичь магию разработки игр. Выбрал курс по Unreal Engine 5 и C++, так как там все структурировано, понятно, и в случае необходимости есть кому задать вопрос. На первой лекции по основам С++ преподаватель сразу предложил челлендж - написать 2D игру без использования игрового движка. Идея мне понравилась и я сразу приступил к реализации.
https://habr.com/ru/post/708486/
#cpp #programming
👉 @cpp_lib
🔥8⚡2👍1
Прошиваем программу не только в начало FLASH памяти STM32
Знаете ли вы куда попадает ваша программа после того, как вы нажали кнопку RUN или DEBUG в IDE? Если да, то как изменить этот адрес или даже выйти за пределы постоянной памяти и прожигаться сразу в оперативную память.
Я работаю в CubeIDE и весь мой интерфейс будет именно из этой среды разработки.
Начнем с ответа на первый вопрос, если использовать стандартные настройки IDE и взять стандартный ST-LINK (не важно оригинал или свисток), то при прожигании микроконтроллера будет очищено нужное количество секторов во FLASH памяти и на их место будет записана программа, причем в самое начало FLASH памяти по адресу 0x08000000.
Тут немного остановимся. Для большинства проектов этого достаточно, программа находится во FLASH памяти, при перезагрузке микроконтроллера ни куда не исчезает и исправно запускается. Проблемы начинаются, когда приходит задача, встроить загрузчик, который будет самостоятельно принимать прошивку по одному из интерфейсов, будь то UART/USART, I2C или CAN и сохранять ее в требуемом месте FLASH памяти, а после перезагрузки должен самостоятельно подготовить и передать управление требуемой программе.
https://habr.com/ru/articles/831016/
#cpp #programming
👉 @cpp_lib
Знаете ли вы куда попадает ваша программа после того, как вы нажали кнопку RUN или DEBUG в IDE? Если да, то как изменить этот адрес или даже выйти за пределы постоянной памяти и прожигаться сразу в оперативную память.
Я работаю в CubeIDE и весь мой интерфейс будет именно из этой среды разработки.
Начнем с ответа на первый вопрос, если использовать стандартные настройки IDE и взять стандартный ST-LINK (не важно оригинал или свисток), то при прожигании микроконтроллера будет очищено нужное количество секторов во FLASH памяти и на их место будет записана программа, причем в самое начало FLASH памяти по адресу 0x08000000.
Тут немного остановимся. Для большинства проектов этого достаточно, программа находится во FLASH памяти, при перезагрузке микроконтроллера ни куда не исчезает и исправно запускается. Проблемы начинаются, когда приходит задача, встроить загрузчик, который будет самостоятельно принимать прошивку по одному из интерфейсов, будь то UART/USART, I2C или CAN и сохранять ее в требуемом месте FLASH памяти, а после перезагрузки должен самостоятельно подготовить и передать управление требуемой программе.
https://habr.com/ru/articles/831016/
#cpp #programming
👉 @cpp_lib
👍8
Автор: Ben Coepp (2022)
Быстро начните работать с Qt, популярным фреймворком с открытым исходным кодом для создания приложений и игр на основе C++. Эта книга поможет вам в кратчайшие сроки создать полнофункциональные настольные и мобильные приложения.
#cpp #programming
👉 @cpp_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10😁1😎1
Игрушечная имлементация чисел с фиксированной точкой в C++
В C++ нет базового типа чисел с фиксированной точкой, в стандартной библиотеке также нет классов для них. В тоже время работа с числами с плавающей точкой (double, float) часто может быть неочевидна (например, ответьте на вопрос: ассоциативна ли операция сложения над ними?), вдобавок язык предоставляет (часто критикуемую) возможность перегрузки арифмитических операторов, подталкивая нас к созданию собственного типа данных.
https://habr.com/ru/articles/831624/
#cpp #programming
👉 @cpp_lib
В C++ нет базового типа чисел с фиксированной точкой, в стандартной библиотеке также нет классов для них. В тоже время работа с числами с плавающей точкой (double, float) часто может быть неочевидна (например, ответьте на вопрос: ассоциативна ли операция сложения над ними?), вдобавок язык предоставляет (часто критикуемую) возможность перегрузки арифмитических операторов, подталкивая нас к созданию собственного типа данных.
https://habr.com/ru/articles/831624/
#cpp #programming
👉 @cpp_lib
👍3
CppCoreGuidelines
Основные принципы C++ - это набор проверенных рекомендаций, правил и лучших практик по программированию на C++.
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
#cpp #programming
👉 @cpp_lib
Основные принципы C++ - это набор проверенных рекомендаций, правил и лучших практик по программированию на C++.
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
#cpp #programming
👉 @cpp_lib
👍7🔥2😱1
John Horton (2024)
Вы изучите ключевые темы C++, такие как ООП и указатели C++, познакомитесь со стандартной библиотекой шаблонов (STL). Книга поможет вам узнать о методах обнаружения столкновений и игровой физике, создав игру Pong. В процессе создания игр вы также узнаете такие интересные концепции игрового программирования, как вершинные массивы, направленный звук (пространственность), программируемые шейдеры OpenGL, порождение объектов и многое другое. Вы глубоко погрузитесь в игровую механику и реализуете обработку ввода, повышение уровня персонажа и простой вражеский ИИ. Наконец, вы изучите паттерны проектирования игр, чтобы усовершенствовать свои навыки программирования игр на C++.
#cpp #programming
👉 @cpp_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1
Опыт создания UI библиотеки на C++
Началось все почти два года назад в декабрe, наш основной проект (видео мессенджер) использовал WTL для Windows и GTKmm для Linux. Поддержки мака не было. Огромной неприятностью было тащить два идентичных клиента, которые, по идее, должны делать все строго одно и тоже. Разумеется, это никогда не получалось. От мысли что надо бы сделать ещё один нативный клиент для мака начинался нервный тик...
На резонный вопрос - почему сразу делалось не на Qt могу лишь ответить, что это связано с, так скажем, гурманскими предпочтениями и, отчасти, с любовью к монолитным exe. Да и не требовалось на старте ничего кроме винды.
В течение шести лет жизни с двумя кодовыми базами одного и того же, неспешно подбирались легковесные UI библиотеки написанные хотя бы в стиле C++11.
Надо сказать, что мы активно используем boost и всей душой, как можем, его любим...
В 2021 году видимо Гугл работал плохо или звёзды так сошлись, но не нашлось ничего стоящего. Все что попадалось - основанные на рендеринге html проекты и обертка над wxWidgets. Сейчас то мы знаем про lvgl, да... А вообще, тысячи их.
wxWidgets не плох, но хотелось своего рисования, без окошек под кнопки, поля ввода и списки, boost/bsd подобной лицензией, максимально лаконичной, и в идеале работающей от Windows XP / CentOS 6 на стандартном GDI / X11 до Vulkan на современных машинах.
В итоге, все же было принято волевое решение сделать минимальный UI фреймворк для этого проекта, и сразу выпускать его в Open Source под лицензией boost.
https://habr.com/ru/articles/768336/
#cpp #programming
👉 @cpp_lib
Началось все почти два года назад в декабрe, наш основной проект (видео мессенджер) использовал WTL для Windows и GTKmm для Linux. Поддержки мака не было. Огромной неприятностью было тащить два идентичных клиента, которые, по идее, должны делать все строго одно и тоже. Разумеется, это никогда не получалось. От мысли что надо бы сделать ещё один нативный клиент для мака начинался нервный тик...
На резонный вопрос - почему сразу делалось не на Qt могу лишь ответить, что это связано с, так скажем, гурманскими предпочтениями и, отчасти, с любовью к монолитным exe. Да и не требовалось на старте ничего кроме винды.
В течение шести лет жизни с двумя кодовыми базами одного и того же, неспешно подбирались легковесные UI библиотеки написанные хотя бы в стиле C++11.
Надо сказать, что мы активно используем boost и всей душой, как можем, его любим...
В 2021 году видимо Гугл работал плохо или звёзды так сошлись, но не нашлось ничего стоящего. Все что попадалось - основанные на рендеринге html проекты и обертка над wxWidgets. Сейчас то мы знаем про lvgl, да... А вообще, тысячи их.
wxWidgets не плох, но хотелось своего рисования, без окошек под кнопки, поля ввода и списки, boost/bsd подобной лицензией, максимально лаконичной, и в идеале работающей от Windows XP / CentOS 6 на стандартном GDI / X11 до Vulkan на современных машинах.
В итоге, все же было принято волевое решение сделать минимальный UI фреймворк для этого проекта, и сразу выпускать его в Open Source под лицензией boost.
https://habr.com/ru/articles/768336/
#cpp #programming
👉 @cpp_lib
👍7
4 типовые ловушки в работе со строками в С и С++ и как их избежать
Некорректное использование строк может стать настоящей ахиллесовой пятой защиты программы. Поэтому так важно применять актуальные подходы к их обработке. Под катом разберём несколько паттернов ошибок при работе со строками, поговорим о знаменитой уязвимости Heartbleed и узнаем, как сделать код безопаснее.
https://habr.com/ru/companies/ncloudtech/articles/830918/
#cpp #programming
👉 @cpp_lib
Некорректное использование строк может стать настоящей ахиллесовой пятой защиты программы. Поэтому так важно применять актуальные подходы к их обработке. Под катом разберём несколько паттернов ошибок при работе со строками, поговорим о знаменитой уязвимости Heartbleed и узнаем, как сделать код безопаснее.
https://habr.com/ru/companies/ncloudtech/articles/830918/
#cpp #programming
👉 @cpp_lib
😱4👍3