C++

  • Хабрахабр

    Вызываем конструктор базового типа в произвольном месте

    Недавно проходил собеседование, и среди прочих был вопрос о порядке вызова конструкторов в C#. После ответа собеседующий решил продемонстрировать эрудицию и заявил, что вот в Java конструктор базового типа можно вызвать в любом месте конструктора производного типа, и C#, конечно, в этом проигрывает. Утверждение оказалось ложью, враньем и провокацией Но это уже не имело значения, потому что вызов был принят.…

    Подробнее »
  • Хабрахабр

    Меняю свой стек с понедельника

    Приветствую, коллега!Примерно за год до момента написания этой статьи мне начало казаться, что я начал выгорать. Работа, уже давно превратившаяся в ремесло, перестала приносить то студенческое чувство первооткрытия, знакомое каждому программисту, приносящее эйфорию. Ради этого чувства, ради новых знаний я когда-то просиживал за монитором по 18 часов в сутки. Это давно прошло… но недавно я испытал это чувство снова! Сначала…

    Подробнее »
  • Хабрахабр

    Сэмулируй сборку приложения ARM на x86 процессоре на примере Qt

    Мощность современных процессоров растёт, как в стационарных компьютерах, так и в различных embedded устройствах, на борту которых процессоры на базе ARM с операционной системой linux. Сегодня в рамках данной статьи мы запустим эмулятор процессора ARM на x86 компьютере и в нём попробуем собрать Qt из исходников и тестовое приложение, т.е. так сказать сиэмулируем сборку ARM приложения. В первой части статьи…

    Подробнее »
  • Хабрахабр

    Сэмулируй сборку приложения ARM на x86 процессоре на примере Qt

    Мощность современных процессоров растёт, как в стационарных компьютерах, так и в различных embedded устройствах, на борту которых процессоры на базе ARM с операционной системой linux. Сегодня в рамках данной статьи мы запустим эмулятор процессора ARM на x86 компьютере и в нём попробуем собрать Qt из исходников и тестовое приложение, т.е. так сказать сиэмулируем сборку ARM приложения. В первой части статьи…

    Подробнее »
  • Хабрахабр

    Одежда умная, но мы умнее: как мы делали футболку с контролем осанки

    Всем привет! Во втором семестре все первокурсники программы «Прикладная математика и информатика» в Питерской Вышке делают командные проекты по С++. Мы занимались разработкой умной футболки. О том, что это такое, и что мы успели сделать за время работы над проектом, читайте в этой статье. Мы — Денис Тарасов и Денис Филиппов — студенты уже второго курса бакалавриата «Прикладная математика и…

    Подробнее »
  • Хабрахабр

    CLion 2020.2: поддержка проектной модели Makefile, больше C++20 и не только

    Привет, Хабр! У нашей команды выдалось очень насыщенное лето, результатами которого мы и спешим сегодня поделиться. Итак, встречайте новый релиз CLion 2020.2! Коротко о том, что вошло в новую версию: Поддержка проектной модели Makefile. Последние обновления в CMake. Новые возможности C++20: explicit(bool), назначенные инициализаторы (designated initializers), циклы for на основе диапазонов с инициализаторами. Обновленный статический анализатор кода: анализ на висячие…

    Подробнее »
  • Хабрахабр

    [recovery mode] Как я участвовал в IOCCC-’19 (и проиграл). Часть 1: «Крестики-нолики»

    Нас с детства учили, что хороший, качественный код должен хорошо читаться, быть семантически и алгоритмически понятным. Все ругают программистов, которые пишут непонятный или переусложенный код. Но что, если провести конкурс, в котором критерий «хорошести» кода будет перевернут? Читаемость и понятность со знаком «минус». Именно с такими мыслями Leonid A. Broukhis, Simon Cooper и Landon Curt Noll провели первый конкурс IOCCC…

    Подробнее »
  • Хабрахабр

    Как можно и как нельзя использовать нулевой указатель в С++

    Некоторым этот банальный вопрос уже набил оскомину, но мы взяли 7 примеров и попытались объяснить их поведение при помощи стандарта: struct A { int data_mem; void non_static_mem_fn() {} static void static_mem_fn() {}}; void foo(int) {} A* p{nullptr}; /*1*/ *p;/*2*/ foo((*p, 5)); /*3*/ A a{*p};/*4*/ p->data_mem;/*5*/ int b{p->data_mem};/*6*/ p->non_static_mem_fn();/*7*/ p->static_mem_fn(); Очевидная, но важная деталь: p, инициализированный нулевым указателем, не может указывать…

    Подробнее »
  • Хабрахабр

    Равномерное перемещение объекта вдоль кривой

    В процессе разработки игры в совершенно различных жанровых категориях может возникнуть потребность «запустить» какой-либо игровой объект вдоль гладкой кривой с постоянной или контролируемой скоростью, будь то грузовик, следующий из города А в город Б, выпущенная по хитрой траектории ракета, или самолет противника, выполняющий заложенный манёвр. Наверное, каждый имеющий отношение к теме знает или, по крайней мере, слышал, про кривые Безье,…

    Подробнее »
  • Хабрахабр

    [Перевод] Алгоритм сортировки quadsort

    Эта статья описывает стабильный нерекурсивный адаптивный алгоритм сортировки слиянием под названием quadsort.В основе quadsort лежит четверной обмен. Традиционно большинство алгоритмов сортировки разработаны на основе бинарного обмена, где две переменные сортируются с помощью третьей временной переменной. Обычно это выглядит следующим образом: if (val[0] > val[1]) { tmp[0] = val[0]; val[0] = val[1]; val[1] = tmp[0]; } В четверном обмене происходит сортировка…

    Подробнее »


Кнопка «Наверх»
Закрыть