Главная » Архив меток: C++

Архив меток: C++

История одной проблемы со Speedometer, или Как Chromium управляет памятью

Современный браузер — это крайне сложный проект, в котором даже безобидные с виду изменения могут приводить к неожиданным сюрпризам. Поэтому существует множество внутренних тестов, которые должны такие изменения отловить до релиза. Тестов никогда слишком много не бывает, поэтому полезно использовать в том числе сторонние публичные бенчмарки. Сегодня я расскажу читателям Хабра о том, как устроено управление памятью в проекте Chromium ...

Читать далее »

[Из песочницы] Преодоление порога 32 КБ для данных в ПЗУ микроконтроллеров AVR

Только неполно документированные костыли. Что может быть хуже костылей? Как видно из столбца Value, переменная my_array содержит число 0x8089. Перед вами скриншот из последней официальной интегрированной среды разработки для 8-битных микроконтроллеров AVR, Atmel Studio 7, язык программирования Си. Другими словами, массив my_array располагается в памяти, начиная с адреса 0x8089. Стоп, но ведь 0x8089 != 0x18089. В то же время столбец ...

Читать далее »

Переход на Boost-1.65.1 и баги, которые всплыли

В прошлом году(уже почти целый год прошел) мы все–таки перешли на новую версию Boost-1.65.1, и под капотом вы найдете тройку багов boost-а, с которыми мы столкнулись. Еще важно упомянуть, что до этого у нас в ПО использовался boost -1.62.1, поскольку какие-то баги появились в boost ранее версии 1.65.1 Также команда интеграции ответственна за устранение всех проблем, которые при этом возникают, ...

Читать далее »

Запускаем свой нейросетевой детектор на Raspberry Pi с помощью Neural Compute Stick и OpenVINO

С распространением и развитием нейронный сетей все чаще возникает потребность их использования на встроенных и маломощных устройствах, роботах и дронах. Устройство Neural Compute Stick в связке с фреймворком OpenVINO от компании Intel позволяет решить эту задачу, беря тяжелые вычисления нейросетей на себя. Благодаря этому можно без особых усилий запустить нейросетевой классификатор или детектор на маломощном устройстве вроде Raspberry Pi практически ...

Читать далее »

256 строчек голого C++: пишем трассировщик лучей с нуля за несколько часов

Публикую очередную главу из моего курса лекций по компьютерной графике (вот тут можно читать оригинал на русском, хотя английская версия новее). На сей раз тема разговора — отрисовка сцен при помощи трассировки лучей. Как обычно, я стараюсь избегать сторонних библиотек, так как это заставляет студентов заглянуть под капот. Вот, например, очень известная программа рендеринга, влезающая на визитку. Подобных проектов в ...

Читать далее »

Трехмерная визуализация в тренажерах подвижного состава на базе движка OpenSceneGraph

Тогда я обещал, что это будет не последняя публикация на данную тему, в частности грозился рассказать о проблемах создания трехмерной визуализации для подобного рода симуляторов и очертить основные подходы к их решению. Чуть меньше года назад увидела свет публикация, где мы рассказывали об учебно-лабораторном комплексе (УЛК) электропоезда ЭС1 «Ласточка», разработанном нашем университете. Сам по себе учебно-лабораторный комплекс данного электропоезда заслуживает ...

Читать далее »

explicit в деталях

Если спросить C++-программиста о значении ключевого слова explicit, большинство ответит, что это ключевое слово ставится перед объявлением конструктора с одним параметром (или с большим числом параметров, но когда все параметры, начиная со второго, имеют значения по умолчанию) и предотвращает неявное преобразование типов при инициализации. class Simple { public: Simple(int a) : a_(a) private: int a_; }; class SimpleExplicit { public: ...

Читать далее »

explicit в деталях

Если спросить C++-программиста о значении ключевого слова explicit, большинство ответит, что это ключевое слово ставится перед объявлением конструктора с одним параметром (или с большим числом параметров, но когда все параметры, начиная со второго, имеют значения по умолчанию) и предотвращает неявное преобразование типов при инициализации. class Simple { public: Simple(int a) : a_(a) private: int a_; }; class SimpleExplicit { public: ...

Читать далее »

Конференция C++ Russia 2019

Представьте, что C++ Russia больше нет. Всем привет! Есть множество конференций, посвящённых более широким темам, но наша — одна из немногих, целиком и полностью сфокусированная на C++ и открыто заявляющая, что это будет реальный хардкор. Куда вы пойдёте вместо этого? Хорошо, что мы никуда не исчезали! Выбора немного. В следующий раз C++ Russia пройдёт уже этой весной. Скорее всего, будет ...

Читать далее »

PVS-Studio 7.00

Сегодня важный день – после 28 релизов шестой версии мы выпускаем PVS-Studio 7.00, где ключевым новшеством является поддержка языка Java. Однако за 2018 год накопилось много других важных изменений, касающихся С++, С#, инфраструктуры и поддержки стандартов кодирования. Поэтому предлагаем вашему вниманию заметку, которая обобщает основные изменения, произошедшие в PVS-Studio за последнее время.PVS-Studio — это инструмент для выявления ошибок и потенциальных ...

Читать далее »