Настоящая статья продолжает тему предыдущей работы (https://habr.com/ru/post/560266/Читать полностью »
Рубрика «c++» - 15
Математическое решение задачи о матрице «змейкой»
2022-06-18 в 21:14, admin, рубрики: c++, Алгоритмы, Занимательные задачки, Лайфхаки для гиков, математика, математика для программистов, Программирование, условия, циклыSObjectizer: что это, для чего это и почему это выглядит именно так? Взгляд из 2022-го
2022-06-15 в 8:34, admin, рубрики: actor model, c++, c++17, concurrency, multithreading, open source, sobjectizer, ПрограммированиеШесть лет назад, в июне 2016-го года, вышла первая статья об инструменте, с разработкой которого я связан уже много лет. Шестилетней давности публикация дала толчок интереса к SObjectizer-у и, как я понимаю, кто-то сумел попробовать этот инструмент в деле (или собрался попробовать) именно благодаря той статье. Поскольку за прошедшее время SObjectizer несколько изменился, то я подумал, что не помешало бы выпустить обновленную версию статьи. Исправленную и дополненную. С учетом не только того, что изменилось/появилось/исчезло, но и отталкиваясь от критических отзывов на предыдущие обзорные статьи.
Во что вам обойдется конкурентная обработка. Иерархия проблем
2022-06-13 в 4:48, admin, рубрики: c++, cpu, Алгоритмы, блокировки, высокая производительность, исследование, многопоточность, Параллелизм, параллельное программирование, системное программированиеКонкурентность сложно как следует наладить, как минимум, тем из нас, кому не повезло писать на языках, непосредственно открывающих нутро конкурентного аппаратного обеспечения: речь о потоках и разделяемой памяти. Не менее сложно организовать конкурентность так, чтобы она работала и правильно, и быстро. Все, что вы знаете об оптимизации однопоточного кода, зачастую вам не поможет. На микроуровне (отдельные инструкции) просто невозможно применить обычные правила, актуальные для μ-операций, цепочек зависимостей, пределов пропускной способности и т.д. При конкурентности правила другие.
Продление жизни временных значений в С++: рецепты и подводные камни
2022-06-04 в 12:20, admin, рубрики: auto, c++, c++11, C++14, decltype, l-value reference, nrvo, rvalue reference, temporary object, xvalue, Программирование, с++17Прочитав эту статью вы узнаете:
-
Способы, которыми можно продлить время жизни временного объекта в С++.
-
Рекомендации и подводные камни этого механизма, с которыми может столкнуться С++ программист, и с которыми сталкивался на работе я.
Информация из статьи может быть полезна как новичкам, так и профессионалам.
Если заинтересовало, то самое время налить чая, и погнали разбираться где тут референсы повисли.
Оглавление
Кросс-компиляция Qt в России
2022-06-03 в 21:10, admin, рубрики: c++, qt, qt creator, qt5, Программирование, Разработка под Linux, разработка под windows, санкции, установка приложенийПредисловие
Как Вы возможно знаете на территории РФ более недоступен Qt. Также в этот момент мне потребовалось реализовать кросс-компиляцию своего проекта под разные ОС. В ходе реализации кросс-компиляции обнаружилось, что можно совершенно легально использовать Qt, да еще и реализовать кросс-компиляцию.
Windows 11
Используя метод проб и ошибок выяснилось, что наиболее хорошо подходит для данных целей Windows 11, т.к. под него есть X Server, причем абсолютно бесплатный. Также не может не радовать скорость работы WSL2 под данной ОС. Итак, не буду томить - переходим к реализации.
Установка WSL2 + X Server
Объектно-ориентированный антипаттерн
2022-05-29 в 11:14, admin, рубрики: antipattern, antipatterns, c++, use functions luke!, антипаттерны, ВычисляторЗначения, ооп, Программирование, Проектирование и рефакторинг, рефакторинг, Совершенный кодДля тех, кто читает не далее второго абзаца: я не говорю, что любое ООП - это плохо! ООП, особенно классическое полиморфное ООП, заслуженно имеет своё место в реальных проектах. Ниже речь поидёт про частный случай (анти)паттерна, который я периодически встречаю: использование классов там, где могли быть простые свободные функции.
Начало
Довольно часто у студентов, изучающих C++ в определённых учебных кругах, складывается мировоззрение о том, что всё должно быть объектами. Попросите их написать программу, которая считает некоторое значение - и они начнут с создания объекта ValueComputer
и метода vc.computeResult()Читать полностью »
Генерация лабиринтов: алгоритм Эллера
2022-05-24 в 13:51, admin, рубрики: c++, Gamedev, алгоритм генерации, алгоритм эллера, Алгоритмы, генерация лабиринтов, Лабиринт, С++Вступление
Как оказалось, что тема генерации лабиринтов не сильно раскрывается в русско- и англоязычном сообществе. На хабре существует одна статья Алгоритм Эллера для генерации лабиринтов. Статья, является переводом англоязычной статьиЧитать полностью »
C++ магистрали потоков и древо алгоритма
2022-05-15 в 12:06, admin, рубрики: application architecture, c++, channel, execution_tree, mutexless, template, thread, thread_highways, машинное обучение, ПрограммированиеПривет. В этой публикации речь пойдёт о многопоточке, каналах, подписках, планировании регулярных задач, мониторинге, нейросетях и самоэволюционирующих алгоритмах.
Для начала небольшое вступление, а потом пойдёт C++ код.
Концепция умного указателя static_ptr<T> в C++
2022-05-14 в 19:18, admin, рубрики: c++, memory allocation, smart pointers, unique_ptr, Программирование, умный указательВ C++ есть несколько "умных указателей" - std::unique_ptr
, std::shared_ptr
, std::weak_ptr
. Также есть более нестандартные умные указатели, например в boost1: intrusive_ptr
, local_shared_ptr
.
В этой статье мы рассмотрим новый вид умного указателя, который можно назвать static_ptr
. Больше всего он похож на Читать полностью »
PProto: бинарный rpc протокол для Qt framework (часть 2)
2022-05-14 в 18:52, admin, рубрики: c++, RPC, десериализация, Программирование, сериализация, Сетевые технологииВ первой части статьи было рассказано о бинарном и json форматах сериализации данных, о механизмах версионирования. В этой части речь пойдет о концепции команд, сообщениях, и механизмах их доставки.