Обновить
274.28

C++ *

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

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

Пчела на работе, разработка игр на SFML C++

Время на прочтение7 мин
Охват и читатели6.6K

Предыдущая тема

В этой статье рассмотрены следующие темы:

1) написание класса плеер;

2) интеграция класса плеер в игровой проект.

Читать далее

C/C++ из Python (Kivy, ctypes) на iOS

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели3.1K
main

Ранее я писал статьи C/C++ из Python (ctypes), C/C++ из Python (Kivy, ctypes) на Android. В них описывается процесс запуска на Linux и Android. Теперь поговорим как тоже самое сделать на iOS. В этой статье речь пойдет о сборке, необходимых инструментах, механизмах отладки и установки.

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

Пчела на работе, разработка игр на SFML C++

Время на прочтение4 мин
Охват и читатели13K

Предыдущая тема

Обзор игры на SFML С++. Как клонировать репозиторий и собрать проект с помощью СMake. Обзор классов игры "Пчела на работе".

Читать далее

Размышление об Active Object в контексте Qt6. Часть 2.6

Время на прочтение4 мин
Охват и читатели3.4K

В предыдущей части цикла я описал способ вызова слота посредством очереди обработки сигнально-слотовых соединений Qt (она же очередь событий). Но совсем забыл про такую штуку, как QMetaObject::invokeMethod. А ведь эта штука позволяет добиться такого же эффекта (вызов метода в потоке-владельце QObject), но без необходимости создания сигнала.

Читать далее

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

Время на прочтение2 мин
Охват и читатели2K

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

Читать далее

Еще один пересказ «туториала» Джека Креншоу

Время на прочтение5 мин
Охват и читатели3.8K
Иногда более-менее не тривиальную задачку приятно решить с чувством легкого базиса под ногами. Базис как бы уже есть, и мы как нечто среднее между художником и архитектором, ловим себя (в данный момент времени) на перекладывании пустого в порожнее, готовя нечто яркое и крепкое (почти как красное полусухое ?. Яркое — потому что без йоты красоты легко сойти на полпути, а крепкое — профессия обязывает. Чтобы было еще ярче, призовем в помощь замечательные серии Jack Crenshaw compilers.iecc.com/crenshaw (non-technical introduction to compiler construction) и начнем, пожалуй, с построения маленького, но вполне достойного линтера en.wikipedia.org/wiki/Lint_(software) (Честно говоря, так как ниже будет имплементен разбор яваскрипт кода, вполне допустимо, но только временно, переименовать линтер в парсер и думать дальше в новых терминах)

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

Релиз языка программирования NewLang 0.2

Время на прочтение5 мин
Охват и читатели8.6K

image


NewLang — это язык программирования высокого уровня в котором можно сочетать стандартные алгоритмические конструкции с декларативным программированием и тензорными вычислениями для задач машинного обучения.


Основной особенностью языка является простой, логичный и не противоречивый синтаксис, который основан не на использовании зарезервированных ключевых слов, а на строгой системе грамматических правил с использованием знаков препинания (в список которых входят и операторы языка).


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

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

Межмодульный анализ C и C++ проектов в деталях. Часть 2

Время на прочтение14 мин
Охват и читатели3K

В первой части статьи мы рассматривали основы теории компиляции C и C++ проектов, в частности особое внимание уделили алгоритмам компоновки и оптимизациям. Во второй части мы погрузимся глубже и покажем ещё одно применение межмодульного анализа. Но в этот раз не для оптимизаций исходного кода, а для улучшения качества статического анализа на примере PVS-Studio.

Читать далее

Пишем внешнюю компоненту для 1С, NativeAPI на С++, для ОС Linux, с использованием Qt Creator

Время на прочтение10 мин
Охват и читатели24K

Аннотация

В статье рассмотрен процесс создания внешней компоненты для 1С в среде Qt Creator для операционной системы Linux (ubuntu, debian, mint и им подобных). На примере компоненты для сбора данных от внешней аппаратуры и сохранение их в базе, посредством 1С. В качестве внешней аппаратуры в данном примере будем использовать Arduino UNO.

Для создания внешней компоненты понадобятся

Читать далее

Flutter каналы платформы

Время на прочтение25 мин
Охват и читатели15K

Перевод статьи одного из инженеров команды Flutter, посвященной каналам платформы, и иже с ним.

Читать далее

Судьба баг-репорта

Время на прочтение5 мин
Охват и читатели2.3K

Довольно частый (и логичный) вопрос к нашим статьям с проверкой открытых проектов: отправляются ли разработчикам баг-репорты? Так вот, ответ – да. Более того, мы на этом не останавливаемся и иногда отслеживаем прогресс. Сегодня хотелось бы рассказать об одном из случаев, где именно эта педантичность предотвратила фиктивное исправление бага.


0921_destiny_of_a_bug_report_ru/image1.png

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

Разработка веб приложений на C/С++

Время на прочтение6 мин
Охват и читатели20K
В этой статье я бы хотел рассказать про создание веб приложений на С/С++ с использованием стека Nginx+fastcgi. Если быть более точным, то статья больше относится к сайтам, то есть к отдаче контента. Есть достаточно старая, но хорошая статья habr.com/ru/post/154187 Хотя тех пор прошло много времени, вышли новые стандарты С++. Я хочу в этой статье описать некоторое логическое продолжение, так как думаю, что тема будет многим интересна.
Читать дальше →

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

Режим шифрования AEAD-MGM

Время на прочтение9 мин
Охват и читатели5.5K

В 2017 году российской компанией КриптоПро был предложен новый AEAD режим шифрования Multilinear Galois Mode (MGM). Спустя некоторое время он был принят в российские и международные стандарты. Так как в интернете я смог найти только общее описание работы этого режима шифрования без конкретной реализации, то я решил попробывать свои силы и реализовать очень упрощённую версию своими руками...

Читать далее

Гайдлайны и бритвы компании Bungie по кодингу на C++

Время на прочтение14 мин
Охват и читатели6.3K

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

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

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

В этой статье мы делаем упор на разработке игр и языке программирования C++, но даже если вы не знаете C++ и не работаете инженером, она всё равно будет для вас интересной.
Читать дальше →

Руководство Google по стилю в C++. Часть 7

Время на прочтение40 мин
Охват и читатели12K
Часть 1. Вступление

Часть 6. Специфика Google
Часть 7. Ещё возможности C++
Часть 8. Именование


Это последняя переведённая часть руководства Google по стилю в C++.
Спасибо за замечания и комментарии к переводу.
Надеюсь это руководство будет полезным подспорьем для программистов на C++.
Исходная статья (fork на github), обновляемый перевод.
И ещё здесь много букв.
Читать дальше →

Уроки по SDL 2: Урок 12 Музыка и мышь

Время на прочтение3 мин
Охват и читатели6K

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

Читать далее

Как я писал Биномиальную кучу

Время на прочтение9 мин
Охват и читатели5.4K

Я сейчас изучаю продвинутые структуры данных и в один прекрасный вечер я решил собирать алгоритмы и структуры данных к себе на гитхаб (и до сих пор это делаю). Захотел я сделать так, чтобы сделать всё шаблонным, если что-то мне резко понадобится, то я смог за считанные секунды добавить себе шаблонный класс структуры данных или шаблонную функцию алгоритма и использовать. Звучит замечательно, особенно на контесты с codeforces.

Я столкнулся с проблемами и решил здесь поделиться опытом с тем, кто также, как и я, мало знаком с пром. прогой и до этого в основном увлекался олимпиадным программированием.

Читать далее

Сеттер или геттер-ссылка — как сделать правильный выбор?

Время на прочтение4 мин
Охват и читатели9.2K

Когда вы создаете класс, вам часто приходится реализовывать методы доступа к одному или нескольким атрибутам этого класса для того, чтобы можно было редактировать их.

Читать далее

Модульное программирование в C++. Статические и динамические плагины

Время на прочтение13 мин
Охват и читатели20K

Модульное программирование в C++. Статические и динамические плагины


Плагины на С++

На тему модульности программ в С++, в Интернете, теоретических материалов много, а практических – мало. Поэтому, не найдя подходящего прототипа для собственного проекта, пришлось изобретать очередной «велосипед», из чего-то, ведь, исходить надо.

Сложность программирования, тестирования, отладки, поддержки и сопровождения программных продуктов заставляет искать пути борьбы с ней. Одним из традиционных способов является использование плагинов и сервисов с виртуальными интерфейсами. Однако доступные примеры предпочитают иметь дело с консолью, тогда как нам интересны окна и другие компоненты из арсенала GUI (графического интерфейса пользователя).
Читать дальше →

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