Пол Дрейк: Использование шаблонов переменных для решения крошечной проблемы
В этом докладе Пол демонстрирует, как шаблоны переменных, появившиеся в C++14, могут быть использованы для улучшения читаемости небольшой задачи, с которой он столкнулся в своей повседневной работе.
https://www.youtube.com/watch?v=LTzpqF6wAzc
#cpp #programming
👉 @cpp_lib
В этом докладе Пол демонстрирует, как шаблоны переменных, появившиеся в C++14, могут быть использованы для улучшения читаемости небольшой задачи, с которой он столкнулся в своей повседневной работе.
https://www.youtube.com/watch?v=LTzpqF6wAzc
#cpp #programming
👉 @cpp_lib
YouTube
Paul Dreik: Using variable templates on a tiny problem
In this talk, Paul demonstrates how variable templates introduced in C++14 can be used to enhance readability of a tiny problem encountered in his day job.
Recorded at StockholmCpp 0x29:
https://www.meetup.com/stockholmcpp/events/295294785/
The event was…
Recorded at StockholmCpp 0x29:
https://www.meetup.com/stockholmcpp/events/295294785/
The event was…
👍4
Структурированная диагностика в новом окне сведений о проблеме
Многочисленные ошибки компилятора, в которых, кажется, невозможно разобраться, - бич многих разработчиков C++. Инструменты должны предоставлять лучший опыт, чтобы помочь вам понять диагностику и понять, как исправить корень проблемы.
https://devblogs.microsoft.com/cppblog/structured-diagnostics-in-the-new-problem-details-window/
#cpp #programming
👉 @cpp_lib
Многочисленные ошибки компилятора, в которых, кажется, невозможно разобраться, - бич многих разработчиков C++. Инструменты должны предоставлять лучший опыт, чтобы помочь вам понять диагностику и понять, как исправить корень проблемы.
https://devblogs.microsoft.com/cppblog/structured-diagnostics-in-the-new-problem-details-window/
#cpp #programming
👉 @cpp_lib
🔥4👍1
Forwarded from Книги для программистов C/C++
Экскурсия по C++, A (серия с углубленным изучением C++)
Бьярне Страуструп (2023)
В "Экскурсии по C+", третьем издании, Бьярне Страуструп дает обзор стандарта ISO C++, C++20, цель которого - дать опытным программистам четкое представление о том, что представляет собой современный C++. Это пересмотренное и обновленное издание, содержащее тщательно проработанные примеры и практическую помощь в начале работы, кратко описывает большинство основных языковых возможностей и основные компоненты стандартной библиотеки, необходимые для эффективного использования.
Скачать книгу
👉 @cpp_knigi
Бьярне Страуструп (2023)
В "Экскурсии по C+", третьем издании, Бьярне Страуструп дает обзор стандарта ISO C++, C++20, цель которого - дать опытным программистам четкое представление о том, что представляет собой современный C++. Это пересмотренное и обновленное издание, содержащее тщательно проработанные примеры и практическую помощь в начале работы, кратко описывает большинство основных языковых возможностей и основные компоненты стандартной библиотеки, необходимые для эффективного использования.
Скачать книгу
👉 @cpp_knigi
🔥7
Измерение частоты на STM32
В этой небольшой статье хочу рассказать вам о различных методах измерения частоты прямоугольного сигнала с помощью микроконтроллера STM32.
В процессе работы над одной из железок возникла необходимость организовать несколько выводов, которые бы измеряли частоту входного сигнала. Опробовав несколько разных вариантов, я решил, что негоже примерам пылиться на задворках диска D и стоит ими поделиться с сообществом. Надеюсь кому-то, находящемся в похожей ситуации, этот материал будет полезен. Материал в первую очередь рассчитан на новичков.
https://habr.com/ru/articles/770478/
#cpp #programming
👉 @cpp_lib
В этой небольшой статье хочу рассказать вам о различных методах измерения частоты прямоугольного сигнала с помощью микроконтроллера STM32.
В процессе работы над одной из железок возникла необходимость организовать несколько выводов, которые бы измеряли частоту входного сигнала. Опробовав несколько разных вариантов, я решил, что негоже примерам пылиться на задворках диска D и стоит ими поделиться с сообществом. Надеюсь кому-то, находящемся в похожей ситуации, этот материал будет полезен. Материал в первую очередь рассчитан на новичков.
https://habr.com/ru/articles/770478/
#cpp #programming
👉 @cpp_lib
👍2
С++
Сергей Шамбир (iSpring) - “Быстрые и надёжные сигналы-слоты в C++”
Евгений Зуев (Университет Иннополис) - “Архитектура компиляции: проблемы и решения.”
Константин Гейст (iSpring) - “Следи за своим состоянием: валидация в ООП”
Антон Полухин (Yandex.Taxi) - Полезный constexpr
Институт программных систем
источник
#cpp #programming
👉 @cpp_lib
Сергей Шамбир (iSpring) - “Быстрые и надёжные сигналы-слоты в C++”
Евгений Зуев (Университет Иннополис) - “Архитектура компиляции: проблемы и решения.”
Константин Гейст (iSpring) - “Следи за своим состоянием: валидация в ООП”
Антон Полухин (Yandex.Taxi) - Полезный constexpr
Институт программных систем
источник
#cpp #programming
👉 @cpp_lib
👍7❤3🔥1🎉1
Media is too big
VIEW IN TELEGRAM
Майкл Керриск :: Понимание пространств имен пользователей Linux
Пользовательские пространства имен лежат в основе многих интересных технологий Linux, позволяющих изолировать и изолировать приложения, например, запускать контейнеры без привилегий root и создавать "песочницу" для плагинов веб-браузеров. В этой презентации мы подробно рассмотрим пользовательские пространства имен, получив базовое представление о том, что такое пользовательское пространство имен, и перейдем к таким вопросам, как: что позволяет вам делать статус "суперпользователя внутри пользовательского пространства имен" (и чего он не позволяет); и какова связь между пользовательскими пространствами имен и другими типами пространств имен (PID, UTS, сетевое и т. д.)? Мы также воспользуемся некоторыми простыми командами оболочки для создания и экспериментов с пользовательскими пространствами имен, чтобы лучше понять, как они работают.
источник
#cpp #programming
👉 @cpp_lib
Пользовательские пространства имен лежат в основе многих интересных технологий Linux, позволяющих изолировать и изолировать приложения, например, запускать контейнеры без привилегий root и создавать "песочницу" для плагинов веб-браузеров. В этой презентации мы подробно рассмотрим пользовательские пространства имен, получив базовое представление о том, что такое пользовательское пространство имен, и перейдем к таким вопросам, как: что позволяет вам делать статус "суперпользователя внутри пользовательского пространства имен" (и чего он не позволяет); и какова связь между пользовательскими пространствами имен и другими типами пространств имен (PID, UTS, сетевое и т. д.)? Мы также воспользуемся некоторыми простыми командами оболочки для создания и экспериментов с пользовательскими пространствами имен, чтобы лучше понять, как они работают.
источник
#cpp #programming
👉 @cpp_lib
👍3🍓2🌭1🎄1
Pure Virtual Cast / С++ - производительность и щепотка безопасности.
https://www.youtube.com/watch?v=kWBu3Yg5fjE
#cpp #programming
👉 @cpp_lib
https://www.youtube.com/watch?v=kWBu3Yg5fjE
#cpp #programming
👉 @cpp_lib
YouTube
Pure Virtual Cast / С++ - производительность и щепотка безопасности. / 07.04.2023 #cpp #cpprussia
Подробнее о конференции C++ Russia: https://jrg.su/W8skjE
— Начнем с ответов на комментарии к предыдущему выпуску про безопасность, продолжим про производительность и связанными с ней темами и новостями.
Анонс С++ Russia 2023 и другие новости.
Подкаст…
— Начнем с ответов на комментарии к предыдущему выпуску про безопасность, продолжим про производительность и связанными с ней темами и новостями.
Анонс С++ Russia 2023 и другие новости.
Подкаст…
👍2🥰1
Простая в реализации arena-friendly hash map
https://nullprogram.com/blog/2023/09/30/
#cpp #programming
👉 @cpp_lib
https://nullprogram.com/blog/2023/09/30/
#cpp #programming
👉 @cpp_lib
👍3👏1
О хранении изображений в памяти с выравниванием
В разговорах с коллегами, а также по отдельным постам на форумах я заметил, что даже относительно опытные разработчики порой не очень понимают особенности хранения изображений в памяти. Если вы знаете, что такое выравнивание на границу 64-x байт, а также термины типа «длина или шаг строки (LineWidth/StepWidth, Stride)», «зазоры выравнивания (Alignment Gaps)», кроме того в курсе размеров линий кэша и страниц, то вам, вероятно, не будет интересно, а остальные, особенно те, кто интересуется обработкой изображений — могут ознакомиться с предлагаемым материалом, и, возможно найдут для себя что-то новое и полезное. Под катом будет немножко кода на Си и ассемблере, пара LabVIEW скриншотов, предполагается также, что у читателя есть базовые знания OpenCV. Для экспериментов понадобится компьютер с камушком, поддерживающим AVX2, всё это под Windows 11 x64.
https://habr.com/ru/articles/773948/
#cpp #programming
👉 @cpp_lib
В разговорах с коллегами, а также по отдельным постам на форумах я заметил, что даже относительно опытные разработчики порой не очень понимают особенности хранения изображений в памяти. Если вы знаете, что такое выравнивание на границу 64-x байт, а также термины типа «длина или шаг строки (LineWidth/StepWidth, Stride)», «зазоры выравнивания (Alignment Gaps)», кроме того в курсе размеров линий кэша и страниц, то вам, вероятно, не будет интересно, а остальные, особенно те, кто интересуется обработкой изображений — могут ознакомиться с предлагаемым материалом, и, возможно найдут для себя что-то новое и полезное. Под катом будет немножко кода на Си и ассемблере, пара LabVIEW скриншотов, предполагается также, что у читателя есть базовые знания OpenCV. Для экспериментов понадобится компьютер с камушком, поддерживающим AVX2, всё это под Windows 11 x64.
https://habr.com/ru/articles/773948/
#cpp #programming
👉 @cpp_lib
👍4
Магия swizzle из шейдеров в C++
В шейдере мы можем написать vec3 v0 = v1.xxy * 2, а также любую другую комбинацию x, y, z и w в зависимости от длины вектора. Я рассматриваю только размеры вектора до 4, как самые распространенные для использования. Полученный вектор может иметь не только ту же самую размерность, но и меньшую или большую, причем его компоненты могут быть скопированы в произвольном порядке. Эта операция называется 'swizzle', и она чертовски удобна для различных операций с малоразмерными векторами, особенно если они представляют игровые сущности в виде позиций, размера или цветов. Вектора используются повсюду в игровых проектах (да и не только в игровых), а не только в шейдерах. В какой-то момент было решено добавить 'swizzle' в наш игровой движок в базовые классы vec2, vec3 и vec4. Возникли вопросы: как добиться такого же синтаксического и семантического поведения в C++ коде, при этом минимизируя потери производительности.
https://habr.com/ru/articles/779616/
#cpp #programming
👉 @cpp_lib
В шейдере мы можем написать vec3 v0 = v1.xxy * 2, а также любую другую комбинацию x, y, z и w в зависимости от длины вектора. Я рассматриваю только размеры вектора до 4, как самые распространенные для использования. Полученный вектор может иметь не только ту же самую размерность, но и меньшую или большую, причем его компоненты могут быть скопированы в произвольном порядке. Эта операция называется 'swizzle', и она чертовски удобна для различных операций с малоразмерными векторами, особенно если они представляют игровые сущности в виде позиций, размера или цветов. Вектора используются повсюду в игровых проектах (да и не только в игровых), а не только в шейдерах. В какой-то момент было решено добавить 'swizzle' в наш игровой движок в базовые классы vec2, vec3 и vec4. Возникли вопросы: как добиться такого же синтаксического и семантического поведения в C++ коде, при этом минимизируя потери производительности.
https://habr.com/ru/articles/779616/
#cpp #programming
👉 @cpp_lib
👍2
21 фича современного C++, которые вам обязательно пригодятся
Итак, судьба снова свела вас с C++, и вы поражены его возможностями с точки зрения производительности, удобства и выразительности кода. Но вот незадача: вы теряетесь в этом многообразии замечательных новых фич и, как следствие, затрудняетесь сходу определить, что из этого всего вам действительно стоило бы взять на вооружение в своей повседневной работе по написанию кода. Не стоит расстраиваться, в этой статье вашему вниманию будут представлены 21 новая фича современного C++, которые помогут сделать ваш проект лучше, а работу над ним легче.
https://www.vishalchovatiya.com/21-new-features-of-modern-cpp-to-use-in-your-project/
#cpp #programming
👉 @cpp_lib
Итак, судьба снова свела вас с C++, и вы поражены его возможностями с точки зрения производительности, удобства и выразительности кода. Но вот незадача: вы теряетесь в этом многообразии замечательных новых фич и, как следствие, затрудняетесь сходу определить, что из этого всего вам действительно стоило бы взять на вооружение в своей повседневной работе по написанию кода. Не стоит расстраиваться, в этой статье вашему вниманию будут представлены 21 новая фича современного C++, которые помогут сделать ваш проект лучше, а работу над ним легче.
https://www.vishalchovatiya.com/21-new-features-of-modern-cpp-to-use-in-your-project/
#cpp #programming
👉 @cpp_lib
🔥5👍2👏2🎉2
Современный С++ в разработке девайсов
Меня зовут Андрей Белобров. Я тимлид одной из команд, разрабатывающих приложения для умных девайсов Сбера.
На прошедшей недавно конференции Салют, OS DevConf! я выступил с докладом, в котором рассказал, как мы с командой разрабатываем приложения на С++ для умных устройств с виртуальным ассистентом. А также о том, как инструменты статического и динамического анализа помогают поддерживать единый стиль и высокое качество кода в проекте.
Во время доклада меня попросили подробнее описать детали нашего подхода в статье, поэтому рад поделиться с вами расширенной текстовой версией.
Все наши устройства должны уметь взаимодействовать c виртуальным ассистентом, проигрывать музыку, обновлять прошивку, выполнять аутентификацию пользователя и т.д.. Такая функциональность реализована в едином для всех платформ приложении, работающем в пользовательском режиме на каждом из наших устройств, будь то умная колонка, ТВ-приставка или умный телевизор.
Язык С++ позволяет писать эффективный и переносимый между различными платформами код, поэтому выбор языка программирования для нашего приложения был очевиден. При этом язык известен своей сложностью и возможностью выполнить одну и ту же задачу несколькими способами.
Чтобы успешно разрабатывать большой проект на языке C++, необходимо хорошо настроить процесс разработки в команде (а у нас это несколько десятков инженеров). Также можно значительно осовременить разработку на C++ за счет использования подходящих инструментов статического и динамического анализа и правильной интеграции их в процесс разработки.
https://habr.com/ru/companies/sberdevices/articles/780476/
#cpp #programming
👉 @cpp_lib
Меня зовут Андрей Белобров. Я тимлид одной из команд, разрабатывающих приложения для умных девайсов Сбера.
На прошедшей недавно конференции Салют, OS DevConf! я выступил с докладом, в котором рассказал, как мы с командой разрабатываем приложения на С++ для умных устройств с виртуальным ассистентом. А также о том, как инструменты статического и динамического анализа помогают поддерживать единый стиль и высокое качество кода в проекте.
Во время доклада меня попросили подробнее описать детали нашего подхода в статье, поэтому рад поделиться с вами расширенной текстовой версией.
Все наши устройства должны уметь взаимодействовать c виртуальным ассистентом, проигрывать музыку, обновлять прошивку, выполнять аутентификацию пользователя и т.д.. Такая функциональность реализована в едином для всех платформ приложении, работающем в пользовательском режиме на каждом из наших устройств, будь то умная колонка, ТВ-приставка или умный телевизор.
Язык С++ позволяет писать эффективный и переносимый между различными платформами код, поэтому выбор языка программирования для нашего приложения был очевиден. При этом язык известен своей сложностью и возможностью выполнить одну и ту же задачу несколькими способами.
Чтобы успешно разрабатывать большой проект на языке C++, необходимо хорошо настроить процесс разработки в команде (а у нас это несколько десятков инженеров). Также можно значительно осовременить разработку на C++ за счет использования подходящих инструментов статического и динамического анализа и правильной интеграции их в процесс разработки.
https://habr.com/ru/companies/sberdevices/articles/780476/
#cpp #programming
👉 @cpp_lib
👍4⚡1
Длительность хранения и нелокальные объекты в C++
C++ позволяет нам объявлять различные формы нелокальных объектов: обычно они живут на протяжении всего выполнения программы. В этой статье мы рассмотрим глобальные переменные, динамические и потоково-локальные объекты. Также мы рассмотрим новые возможности безопасной инициализации C++20.
https://www.cppstories.com/2023/storage-init-cpp/
#cpp #programming
👉 @cpp_lib
C++ позволяет нам объявлять различные формы нелокальных объектов: обычно они живут на протяжении всего выполнения программы. В этой статье мы рассмотрим глобальные переменные, динамические и потоково-локальные объекты. Также мы рассмотрим новые возможности безопасной инициализации C++20.
https://www.cppstories.com/2023/storage-init-cpp/
#cpp #programming
👉 @cpp_lib
👍2🎉1
Media is too big
VIEW IN TELEGRAM
Технические собеседования: что болит у тех, кто их проводит и кто на них приходит
Константин Владимиров, Елена Степанова, Илья Казаков (все YADRO) и Илья Шишков (экс-Яндекс) обсудили с аудиторией московского C++ митапа все, что наболело в теме собеседований.
00:00 - Кто больше всех насобеседовал в своей карьере
01:35 - "Собеседования как пощечина вузовскому образованию"
02:20 - Стоит ли "спрашивать кандидата за резюме" (особенно когда собеседуешь не в свою команду)
05:55 - Лучшее собеседование в жизни Елены Степановой
07:45 - Можно ли обойтись без leetcode и алгоритмических секций
13:35 - Стоит ли применять подход fake it till you make it
16:30 - Грустная история про стажера и софтскиллы
17:45 - Вопрос про выбор между опытом и остротой ума или "проблема вагонетки"
21:10 - Вопрос про интересные вопросы и неожиданные ответы
24:40 - Продолжение грустной истории про стажера и софтскиллы
26:35 - Про ключевые вопросы и красные флаги на собеседованиях
34:35 - О фидбеке после интервью (и почему его не всегда дают)
35:45 - Вопрос про код-ревью как форму собеседования
36:45 - Как понять, надолго ли к вам выйдет кандидат
38:30 - Вопрос про Qt и зло ли это
41:50 - Про каверзные вопросы и нужны ли они
43:25 - Вопрос про странных интервьюеров
45:10 - Стоит ли спрашивать про алгоритмы того, кто будет перекладывать байтики
47:50 - Итоговый вопрос для Константина Владимирова
источник
#cpp #programming
👉 @cpp_lib
Константин Владимиров, Елена Степанова, Илья Казаков (все YADRO) и Илья Шишков (экс-Яндекс) обсудили с аудиторией московского C++ митапа все, что наболело в теме собеседований.
00:00 - Кто больше всех насобеседовал в своей карьере
01:35 - "Собеседования как пощечина вузовскому образованию"
02:20 - Стоит ли "спрашивать кандидата за резюме" (особенно когда собеседуешь не в свою команду)
05:55 - Лучшее собеседование в жизни Елены Степановой
07:45 - Можно ли обойтись без leetcode и алгоритмических секций
13:35 - Стоит ли применять подход fake it till you make it
16:30 - Грустная история про стажера и софтскиллы
17:45 - Вопрос про выбор между опытом и остротой ума или "проблема вагонетки"
21:10 - Вопрос про интересные вопросы и неожиданные ответы
24:40 - Продолжение грустной истории про стажера и софтскиллы
26:35 - Про ключевые вопросы и красные флаги на собеседованиях
34:35 - О фидбеке после интервью (и почему его не всегда дают)
35:45 - Вопрос про код-ревью как форму собеседования
36:45 - Как понять, надолго ли к вам выйдет кандидат
38:30 - Вопрос про Qt и зло ли это
41:50 - Про каверзные вопросы и нужны ли они
43:25 - Вопрос про странных интервьюеров
45:10 - Стоит ли спрашивать про алгоритмы того, кто будет перекладывать байтики
47:50 - Итоговый вопрос для Константина Владимирова
источник
#cpp #programming
👉 @cpp_lib
👍6
Media is too big
VIEW IN TELEGRAM
[MUC++] Елизавета Шуланкина - Анализ приложений на C++ для оптимизации производительности
Некоторые из нас, вольно или невольно, сталкивались с необходимостью анализа кода для повышения производительности. Конечно, мы прибегали к различным профилировщикам кода, чтобы выяснить, что не так с нашим идеально написанным кодом... И чаще всего профилировщик удивлял нас, указывая на узкое место в коде!
Этот доклад станет введением в оптимизацию производительности приложений на C++ с помощью таких инструментов, как Intel VTune Profiler и Intel Advisor. Мы кратко рассмотрим шаги по оптимизации производительности, затем возьмем небольшое приложение на C++ и попросим VTune и Advisor помочь нам понять, что происходит, каковы узкие места в производительности и как с ними справиться, чтобы сделать наше приложение эффективным с точки зрения памяти и вычислений. Мы проведем несколько итераций настройки этого приложения на C++ и посмотрим, как оно ускорится.
https://www.youtube.com/watch?v=M1D8iez1Ph0
источник
#cpp #programming
👉 @cpp_lib
Некоторые из нас, вольно или невольно, сталкивались с необходимостью анализа кода для повышения производительности. Конечно, мы прибегали к различным профилировщикам кода, чтобы выяснить, что не так с нашим идеально написанным кодом... И чаще всего профилировщик удивлял нас, указывая на узкое место в коде!
Этот доклад станет введением в оптимизацию производительности приложений на C++ с помощью таких инструментов, как Intel VTune Profiler и Intel Advisor. Мы кратко рассмотрим шаги по оптимизации производительности, затем возьмем небольшое приложение на C++ и попросим VTune и Advisor помочь нам понять, что происходит, каковы узкие места в производительности и как с ними справиться, чтобы сделать наше приложение эффективным с точки зрения памяти и вычислений. Мы проведем несколько итераций настройки этого приложения на C++ и посмотрим, как оно ускорится.
https://www.youtube.com/watch?v=M1D8iez1Ph0
источник
#cpp #programming
👉 @cpp_lib
👍4⚡1👏1
Неклассические контейнеры в C++
Контейнер - это объект, используемый для хранения других объектов. Контейнер берет на себя управление всей памятью, которые эти объекты занимают.
В стандартную библиотеку C++ входит несколько контейнеров. Кроме этого, в Open Source есть несколько контейнеров, которые покрывают больше юзкейсов. Я опишу устройство интересных контейнеров вне STL1 и их отличия от классических контейнеров.
https://habr.com/ru/post/664044/
#cpp #programming
👉 @cpp_lib
Контейнер - это объект, используемый для хранения других объектов. Контейнер берет на себя управление всей памятью, которые эти объекты занимают.
В стандартную библиотеку C++ входит несколько контейнеров. Кроме этого, в Open Source есть несколько контейнеров, которые покрывают больше юзкейсов. Я опишу устройство интересных контейнеров вне STL1 и их отличия от классических контейнеров.
https://habr.com/ru/post/664044/
#cpp #programming
👉 @cpp_lib
👍4⚡1
Стремление к лучшему коду на C++, часть I: основы анализа потоков данных
В CLion встроен анализатор потока данных, который постоянно работает во время написания кода и помогает улучшить его качество. Он может выявить различные проблемы в коде, которые впоследствии могут привести к проблемам во время выполнения, нарушениям безопасности и другим уязвимостям. Примерами таких полезных проверок являются проверки на наличие постоянных условий, мертвого кода, разыменований нулевых указателей, утечек памяти и проблем с индексами массивов. Мы начинаем серию статей в блоге, в которых расскажем, как некоторые из этих проверок работают в CLion.
https://blog.jetbrains.com/clion/2023/11/striving-for-better-cpp-code-part-i-data-flow-analysis-basics/
#cpp #programming
👉 @cpp_lib
В CLion встроен анализатор потока данных, который постоянно работает во время написания кода и помогает улучшить его качество. Он может выявить различные проблемы в коде, которые впоследствии могут привести к проблемам во время выполнения, нарушениям безопасности и другим уязвимостям. Примерами таких полезных проверок являются проверки на наличие постоянных условий, мертвого кода, разыменований нулевых указателей, утечек памяти и проблем с индексами массивов. Мы начинаем серию статей в блоге, в которых расскажем, как некоторые из этих проверок работают в CLion.
https://blog.jetbrains.com/clion/2023/11/striving-for-better-cpp-code-part-i-data-flow-analysis-basics/
#cpp #programming
👉 @cpp_lib
❤4⚡1👍1🎉1
Стремление к лучшему коду на C++, часть II: краткие описания функций для ускорения анализа потока данных
В CLion 2023.3, которая сейчас находится в стадии Early Preview, мы полностью переработали DFA CLion, чтобы сделать анализ более быстрым и точным. Мы реализовали подход, называемый суммированием функций, который позволил нам различать различные контексты функций для произвольных вложенных цепочек вызовов, что привело к более точному анализу. Давайте посмотрим, как это было сделано.
https://blog.jetbrains.com/clion/2023/12/striving-for-better-cpp-code-part-ii-function-summaries-to-speed-up-the-data-flow-analysis/
#cpp #programming
👉 @cpp_lib
В CLion 2023.3, которая сейчас находится в стадии Early Preview, мы полностью переработали DFA CLion, чтобы сделать анализ более быстрым и точным. Мы реализовали подход, называемый суммированием функций, который позволил нам различать различные контексты функций для произвольных вложенных цепочек вызовов, что привело к более точному анализу. Давайте посмотрим, как это было сделано.
https://blog.jetbrains.com/clion/2023/12/striving-for-better-cpp-code-part-ii-function-summaries-to-speed-up-the-data-flow-analysis/
#cpp #programming
👉 @cpp_lib
👍2⚡1