Все потоки
Поиск
Написать публикацию
Обновить
202.01

C++ *

Типизированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Задача теплопроводности методом продольно-поперечной прогонки средствами MPI

Время на прочтение12 мин
Количество просмотров9.5K

Приветствую

Появилась задача моделирования процесса теплопроводности. Для решения необходимо было использовать метод продольно-поперечной прогонки, а для распараллеливания - MPI

Разберем не только теорию, но и подробности решения

Читать далее

7-zip — нет времени спешить

Время на прочтение12 мин
Количество просмотров48K

Данной заметки не должно было быть, но мы живем не в идеальном мире. Есть много пользователей, что предпочли стандартному проводнику Windows альтернативу и наверное еще больше пользователей архиватора 7-zip. Имеет смысл поделиться с ними, подумал я и вот мы здесь.

Опустим лишние подробности, случилось так, что я заметил в используемом файловом менеджере значительную задержку появления окна контекстного меню при выборе большого количества файлов. Даже учитывая что его код меню написан без учета современных рекомендаций MS, лаг был подозрительно большим. И хоть никого не вдохновляет идея потратить личное время на неоплачиваемую работу с непредсказуемым результатом, я решил немного разобраться в причинах.

Что делает обычный эникейщик в подобной ситуации? Конечно же берет в руки первый подвернувшийся профайлер.

Читать далее

C++ для Maya

Время на прочтение12 мин
Количество просмотров5.1K

Создание кастомного локатора в Autodesk Maya с помощью C++

Здравствуйте. В этой статье я хочу поделиться тем опытом, который приобрел при написании плагина на C++ для Maya.

Читать далее

Алгоритмы диапазонов C++20 — 7 немодифицирующих операций

Время на прочтение13 мин
Количество просмотров8.8K


Библиотека Ranges для C++20 предлагает альтернативы для большинства алгоритмов. На этот раз я хочу показать вам десять немодифицирующих операций. Мы сравним их со «старой» стандартной версией и увидим их преимущества и ограничения.


Подробности — к старту нашего курса по разработке на C++.

Читать дальше →

Нестандартный полиморфизм. Паттерн Type Erasure

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров13K

Нестандартный полиморфизм. Паттерн Type Erasure.

Посмотрим на проблему, решим ее обычным полиморфизмом и пройдем небольшими шагами к более элегантному решению с помощью современного паттерна.

Читать далее

Инверсия зависимостей (dependency inversion principle)

Время на прочтение2 мин
Количество просмотров13K

Одним из принципов SOLID является инверсия зависимостей (dip). В литературе по программированию и в интернете масса источников с детальным описанием этого принципа. И большинство кандидатов на собеседовании успешно отвечают заученными фразами на вопрос: "Что такое инверсия зависимости?". Но при практической реализации мгновенно возникает вопрос, а в чем же собственно заключается инверсия и как она программируется? Далее будет рассмотрен данный принцип более подробно.

Читать далее

Помимо Правил Трех, Пяти и Ноля

Время на прочтение8 мин
Количество просмотров5.8K

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

Но очень часто у правил бывают исключения, и иногда эти исключения не менее важны, чем сами правила. Сегодня мы с вам разберемся, какие ситуации не подпадают под Правила Ноля.

Читать далее

Параллелизм истинный и мнимый или… и ты туда же, Рикитаке

Время на прочтение4 мин
Количество просмотров2.4K

Я уже не знаю кому и чему верить. Собрался было подводить итоги по обсуждению аттрактора Лоренца, но что-то меня заставило "поиграть" еще с одним - мотором Рикитаке [1]. И, честное слово, какого-либо подвоха я, ну, никак  не ожидал. Просто потому, что по виду графиков он был, пожалуй, наиболее стабильным и характерным по внешнему виду во всех программных пакетах - MATLAB, SimInTech и ВКПа (cм. также предыдущую статью [2]).

            На структурном уровне рассматриваемые аттракторы можно представить в виде трех блоков ("черных ящиков"), отличающихся лишь видом связей. Структурная модель аттрактора Рикитаке представлена на рис. 1а, а на рис. 1б для сравнения приведена схема аттрактора Лоренца.

 

Читать далее

UNIGINE 2.16.1 — Screen-Space Haze Global Illumination, улучшенный API импорта, усовершенствования для VR

Время на прочтение4 мин
Количество просмотров2.2K

Почти под ёлочку состоялся минорный релиз 2.16.1, который, однако, содержит пару крутых фичей - например, SSHGI (глобальное освещение дымки в экранном пространстве), добавляющее сразу +100 к атмосфере и возможность из любой сцены сделать Сайлент Хилл. А еще мы усовершенствовали API импорта ассетов в процессе работы приложения, добавили опцию для еще более реалистичных динамических отражений, оптимизировали рендеринг теней - об этом и остальном читайте под катом.

Читать далее

PVS-Studio и RPCS3: лучшие предупреждения в один клик

Время на прочтение6 мин
Количество просмотров1.1K

Best Warnings — режим анализатора, оставляющий в окне вывода 10 лучших предупреждений. Мы предлагаем вам ознакомиться с обновлённым режимом Best Warnings на примере проверки проекта RPCS3.

Читать далее

SuperIndustry — Dev log #0 – Начало приключения

Время на прочтение2 мин
Количество просмотров2.2K

Привет, друзья! В этом цикле статей я максимально подробно буду рассказывать о процессе разработки игры на UE – SuperIndustry. Вы сможете на моем примере познать процесс разработки 3D игры на UE. Вкратце про игру: Представьте гибрид Oxygen not included и Satisfactory, в далеком будущем и на специфичной экзо планете. В игре будет простенький сюжет, который будет повествоваться через своеобразный дневник. Главная цель – улететь с планеты (либо же остаться на ней, и немного поиграв дойти до второй, более загадочной и неоднозначной концовки)

Узнать что-то новое

Ближайшие события

Весенние конференции JUG Ru Group: много офлайна и много онлайна

Время на прочтение2 мин
Количество просмотров1.4K

Помните доисторические времена вроде 2019 года, когда ещё не было пандемии? Тогда мы проводили офлайновые конференции, и обычно они длились дня два с утра до вечера: можно успеть и доклады послушать, и наобщаться вволю.

В эпоху онлайн-конференций многие ностальгировали по этому и просили «вернуть как было». Однако другие участники успели полюбить удобство онлайна (например, те, кто живёт далеко от Москвы/Петербурга). И просто вернуть прежний формат означало бы сделать им хуже.

Поэтому на наших весенних конференциях мы постараемся, чтобы никто не ушёл обиженным: и офлайн будет двухдневным (с 2019-го такое не делали), и у онлайн-участников будет много контента. Подробности — под катом.

Читать далее

Правила Трех, Пяти и Ноля

Время на прочтение7 мин
Количество просмотров33K

Цель этого поста — познакомить вас с Правилами Трех, Пяти и Ноля и объяснить, какое из них и когда вам следует использовать. В следующем посте мы углубимся в применение Правила Пяти в различных сценариях.

Читать далее

Используем Objective-C в C++ без проблем

Время на прочтение6 мин
Количество просмотров4.3K

Интегрируем Objective-C код из Apple SDK в C++ проект, без переписывания всего проекта на Objective-C++, с использованием PIMPL идиомы. Также, сборка всего проекта вместе с использованием Makefile и CMake (для генерации .xcodeproject).

Читать далее

Использование final для повышения производительности в C++

Время на прочтение7 мин
Количество просмотров18K

Динамический полиморфизм (виртуальные функции) занимает центральное место в объектно-ориентированном программировании (ООП). При правильном использовании он способствует созданию входных точек в существующей кодовой базе, с помощью которых новый функционал и поведение могут (относительно) легко интегрироваться в уже проверенную, хорошо протестированную кодовую базу.

Читать далее

История разработчиков коммерческой системы видеосвязи Video Union, путь 2013 — 2022

Время на прочтение7 мин
Количество просмотров3.5K

В 2022 году существенно вырос спрос на отечественный софт, в первую очередь заменяющий зарубежные решения. Вопрос замены ПО до сих пор остро стоит во многих компаниях и государственных структурах, особенно после ухода из России зарубежных вендоров и организаций, предоставляющих удобные сервисы для коммуникации. В сегодняшнем интервью поговорим с Сергеем Выборновым @serg52 — одним из основателей системы видеоконференций Video Union и одним из совладельцев этого проекта. Video Union стал одним из вариантов на замену популярных в России сервисов Zoom и Microsoft Teams, постепенно прекращающих бизнес в РФ. Сергей расскажет историю сервиса, интересные и неочевидные моменты развития проекта и как на Video Union повлияла ситуация в мире.

Читать далее

Кастомный аллокатор для закрытого 3rd

Время на прочтение2 мин
Количество просмотров1.8K

Существует ряд ситуаций, когда это имеет смысл. От полного контроля памяти, до вынужденной необходимости. К примеру, одна из возможных ситуаций:
1. Мы используем alignment аллокаторы.
2. Мы перегружаем какой-то класс и данные от нашей 3rd зависимости.
3. 3rd зависимость не использует alignment аллокаторы.

Читать далее

Пишем мультиметоды из Lisp в С++

Время на прочтение7 мин
Количество просмотров4.3K


В статье разберёмся что такое мультидиспетчеризация и как её можно воссоздать на С++

Читать далее

Вклад авторов