Метка «С++» - 4

Во многих языках программирования существует возможность объявлять объекты и переменные константными. И, соответственно, существуют рекомендации делать так, если Вы не собираетесь менять их значения. С приходом нового стандарта, в С++ появилась рекомендация возвращать объекты из функций по значению, потому что даже без RVO можно повысить производительность программы, за счет использования семантики перемещения. Что же будет, если использовать эти две рекомендации вместе: вернуть константный объект по значению? Попробуем разобраться далее.
Читать полностью »

С большим удовольствием ознакомился со статьями: Возможности оптимизации в языках C и C++ и Скорости разработки и исполнения не достижимые на С. В них детально разобрана оптимизация во время компиляции. Основным условием такой оптимизации является доступность значений большинства переменных на этапе компиляции. В реальном мире, к сожалению, такое встречается не всегда.

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

Читать полностью »

Прочитал статьи про комбинаторную кодогенерацию на С++ в контексте линейного поиска в базе данных: Возможности оптимизации в языках C и C++ и Скорости разработки и исполнения не достижимые на С. Попробуем достигнуть скоростей разработки и исполнения на C?

После того, как я запустил компиляцию С++ кода из второй статьи, мне стало интересно — успею ли я написать аналог на С, который будет работать быстрее, пока код… компилируется? Не успел, код скомпилировался через 5 минут, а аналог на С писался все 15.

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

С помощью нескольких функций Windows API можно скрыть кнопку Пуск, панель задач или отдельные ее элементы. Я это делал раньше с помощью Visual Basic 6.0, Delphi, C++, Visual Basic.NET на Windows 98/Me/XP. Попробуем теперь это сделать с помощью C# на Windows 7. Практической ценности данный пример не имеет, может только ради шутки. Но тем не менее, пример может послужить неплохой демонстрацией возможностей, которые скрывают системные функции Windows.

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

Приглашаю всех желающих присоединиться к open-source проекту по разработке кроссплатформенного 2D сетевого шутера.
Основная идея — сделать многопользовательский сетевой шутер с техникой и различными режимами игры по аналогии с серией игр battlefield.
Используемые технологии: C++11, Qt5, Box2d, protobuf, github. Так же ведётся работа над клиентом на Java.

Базовая функциональность (клиент/сервер, карты, оружие, техника) уже частично реализована. Основные задачи над которыми предлагается работать:

  • Различные виды оружия
  • Различные виды техники
  • Улучшение карт (разные типы поверхностей, автогенерация текстур, etc.)
  • Игровое меню
  • Списки игровых серверов
  • Автообновление
  • Редактор карт
  • Портирование клиента под мобильные устройства

Читать полностью »

Здравствуйте! Все чаще встречаю вопросы друзей и коллег, да и просто запросов на тему «как же реализовать шифрование на языке С#». Так вот кому будет интересно расскажу как это можно реализовать.
Режим ECB — метод применения блочного шифра, позволяющий преобразовать последовательность блоков открытых данных в последовательность блоков зашифрованных данных. Более точно вы сможете узнать на Википедии. Я же перейду сказу к сути вопроса.
Читать полностью »

Здравствуйте, жители хабра.
Managed Extensibility Framework aka MEF, что бы не говорили любители навороченных Autofac-ов и прочих StructureMap-ов, является простым и наглядным способом организации композиции в приложении. И после объемной дискусии с уважаемым Razaz по поводу сильных и слабых сторон MEF хотелось бы продемонстрировать возможности определения собственных областей видимости в этом контейнере.

Читать полностью »

При оптимизации времени выполнения алгоритма, использующего LDPC декодер, профайлер привел к функции, вычисляющей следующее значение:
image
где a и b — целые числа. Количество вызовов шло на миллионы, а реализация ее была достаточно Читать полностью »

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

Дисклэймер

Весь код является потокобезопасным, нам удалось локализовать проблему и я приведу немного упрощенную версию кода, но суть проблемы не меняется. Сразу скажу, что, возможно, код не идеален и можно было написать по-другому, но мы имеем, то что имеем и сейчас нас интересует именно суть ошибки.Читать полностью »

Мы проверили заголовочные файлы, входящие в состав Embarcadero C++Builder XE3. Фактически, это означает только проверку небольшого числа inline-функций. Соответственно найдено совсем немного подозрительных мест, но достаточно для небольшой заметки.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js