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

C++ *

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

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

HTTP менеджер запросов в Unreal Engine

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

Приветствую, Хабр!

В этой статье я разберу небольшую, но очень полезную тему HTTP запросов в UE. Все будет выполнено строго на C++.

Читать далее

Халява с Юлы и Авито. Часть 2

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

Новая версия программы на управляемых формах.

Продолжение статьи про халяву с Юлы и Авито.

Читать далее про халяву ;-) Часть 2

PVS-Studio ищет баги в проекте DuckStation

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

Мы часто проверяем ретро-игры. Многие наши разработчики находят интересные для себя проекты и ностальгируют при их изучении. Однако, ретро-игры нужно на чём-то запускать. В этот раз мы проверили проект, помогающий запускать старые игры на современном железе.


0881_duckstation_ru/image1.png

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

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

Время на прочтение3 мин
Количество просмотров7K
Часть 1. Вступление

Часть 10. Форматирование
Часть 11. Исключения из правил

Изменения 2019-2024


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

Уроки по SDL 2: Урок 15 Многопоточность и Тиллинг

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

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

Читать далее

Тайные знания: библиотеки для С++

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

Рун не должен резать
Тот, кто в них не смыслит.
В непонятных знаках
Всякий может сбиться.
Десять знаков тайных
Я прочел и знаю...(Сага об Эгиле)

Многие начинающие программисты, уже освоив синтаксис C++, обнаруживают, что нет простого способа, как подключить библиотеку, так и собрать программу для другой ОС, или чего хуже, под другим компьютером с той же ОС. Эта проблема отчасти порождается спорной практикой обучения, когда код учат писать и запускать лишь средствами IDE, таких как Visual Studio, Code::Blocks, и других.
Поначалу такой подход работает, но лишь до первой реальной задачи сделать что-то, что запустится не только на вашей машине. Тут-то новички и сталкиваются с отсутствием стандартной системы сборки и менеджера зависимостей. После осознания этой сложности, большинство студентов, как правило, переходят на другие языки, попутно тиражируя в индустрии миф о том, что C++ де не кроссплатформенный язык, а вот мой Python/Java/C# - да.
Между тем нас окружает множество замечательных кроссплатформенных программ написанных на C++. Если вы обучаетесь C++ и хотите понять как создавать такое ПО, то эта статья для вас.

Узнать заклинания кроссплатформености

Ассоциативная самозамкнутая сеть. Что нужно для создания сильного ИИ

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

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

Читать далее

Шаблоны и концепты в С++20

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

Привет, Хабр!

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

Важное уточнение: эта лекция — не попытка объять необъятное, а краткий экскурс по полезным возможностям C++ для членов олимпиадного сообщества: от извлечения кода в класс до внутренних механизмов работы лямбда-функций и щепотки ограничений (constraints) из C++20. Если интересно, приглашаем к просмотру.

Смотреть

Проверка орфографии в приложениях Qt

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

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

Читать далее

Многопоточность в Qt Widgets

Время на прочтение3 мин
Количество просмотров11K
При работе приложения с оконным интерфейсом важно обеспечить отсутствие зависаний. Для этого сложные вычисления стоит запускать в отдельной нити. Концепция многопоточного приложения отлично сочетается с подходом сигналы-слоты Qt, при этом совершенно не нужно переопределять никакой метод run().

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

Примитивная графика для ленивых, олдфагов и ленивых олдфагов

Время на прочтение2 мин
Количество просмотров22K
Привет, Хабр. Напоролся я не так давно в сети на довольно простенькую библиотеку для работы с графикой в С/С++, которая может быть полезна школьникам и студентам в их программных изысканиях (не требуя при этом почти никаких знаний), а также некоторым олдфагам, которые помнят древнюю как мамонт графику для DOS. В частности, такой примитивный графический либ, как graphics.h для Турбо Си, на который до сих пор влажно смотрят учителя информатики в школах и преподаватели программирования в универах.
Читать дальше →

3 книги по C++ 17 (на английском)

Время на прочтение2 мин
Количество просмотров10K
Сегодня мы рассказываем вам о трех книгах, написанных нашими Microsoft MVP, по C++ 17. Они могут быть хорошими отправными точками в пути ознакомления с новой версией этого языка программирования. Все они продаются в электронном и бумажном виде на онлайн площадках (от €8.64 до $42.99 за электронные версии).

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

«Лаппландцы» и HTTP

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


Это не про настоящих лапландцев (с одной 'п'). Это про сервер приложений для микросервисов LAppS.


Если интересно то прошу под кат.

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

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

Работа с API КОМПАС-3D → Урок 6 → Построение дуги окружности

Время на прочтение4 мин
Количество просмотров6.3K
Продолжаем цикл статей по работе с API САПР КОМПАС-3D Сергея Норсеева, инженера-программиста АО «ВНИИ «Сигнал», автора книги «Разработка приложений под КОМПАС в Delphi». В качестве среды используется C++ Builder. В предыдущих уроках по API КОМПАС Основы и Оформление чертежа мы исходили из того, что КОМПАС не запущен, в уроке Корректное подключение к КОМПАС мы проверяли наличие уже запущенного КОМПАСа и подключались к нему. В уроке Основная надпись разбирали, как заполнить основную надпись чертежа. В прошлом уроке Графические примитивы мы начали чертить первые геометрические фигуры. В данной статье рассматриваются различные способы построения дуги окружности. В КОМПАС ее можно построить тремя различными способами. Мы рассмотрим их все.


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

Обзор одной российской RTOS, часть 3. Структура простейшей программы

Время на прочтение11 мин
Количество просмотров8.1K
Я продолжаю публиковать цикл статей из «Книги знаний ОСРВ МАКС». Это неформальное руководство программиста, для тех, кто предпочитает живой язык сухому языку документации.

В этой части пришла пора положить теорию на реальный код. Рассмотрим, как всё сказанное раньше записывается на языке С++ (именно он является основным для разработки программ под ОСРВ МАКС). Здесь мы поговорим только о минимально необходимых вещах, без которых невозможна ни одна программа.

Содержание (опубликованные и неопубликованные статьи):

Часть 1. Общие сведения
Часть 2. Ядро ОСРВ МАКС
Часть 3. Структура простейшей программы (настоящая статья)
Часть 4. Полезная теория
Часть 5. Первое приложение
Часть 6. Средства синхронизации потоков
Часть 7. Средства обмена данными между задачами
Часть 8. Работа с прерываниями

Код


Так как у ОСРВ МАКС объектно-ориентированная модель, то и программа должна содержать классы. При этом базовые классы уже имеются в составе ОС, прикладной программист должен лишь создать от них наследников и дописать требуемую функциональность.
Читать дальше →

Снова о числах с плавающей точкой

Время на прочтение10 мин
Количество просмотров18K
Несмотря на то, что вопросам точности компьютерных вычислений посвящено очень много публикаций, некоторые из них, на наш взгляд, всё же остаются не до конца четко раскрытыми. А именно:

1. Какое количество верных цифр n гарантированно имеет десятичное число, представленное двоичным m разрядным кодом в формате числа с плавающей точкой.
2. Как влияет нормализация чисел с плавающей точкой на точность представления числа при его преобразовании из одной системы счисления в другую и при арифметических действиях, выполняемых на компьютере.
3. Как влияет округление числа, представленного в двоичном виде на его десятичный эквивалент.
4. Как положение виртуальной точки в машинном слове влияет на значение числа, представленного в экспоненциальной форме.

Ниже мы попытаемся ответить на эти вопросы.
Читать дальше →

Машинное обучение с помощью TMVA (ROOT)

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

В последние пару лет только и слышно о том, что Python и scikit-learn являются неким золотым стандартом в data science.
Я же хочу рассказать Вам о возможности альтернативного развития в области machine learning, библиотеке написанной на С++.
TMVA (Toolkit for Multivariate Data Analysis with ROOT) — open-source библиотека алгоритмов машинного обучения, которая идёт в дополнение к пакету анализа больших данных ROOT, соответственно устанавливается вместе с ним. Про установку подробно написано в мануале, поэтому мы не будем рассматривать этот момент.

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

Управление памятью: Взгляд изнутри

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

Доброго времени суток!
Хочу представить вашему вниманию перевод статьи Джонатана Барлетта (Jonathan Bartlett), который является техническим директором в компании New Medio. Статья была опубликована 16 ноября 2004 года на сайте ibm.com и посвящена методам управления памятью. Хотя возраст статьи достаточно высок (по меркам IT), информация в ней является фундаментальной и описывает подходы к распределению памяти, их сильные и слабые стороны. Всё это сопровождается «самопальными» реализациями, для лучшего усвоения материала.

Аннотация от автора
Решения, компромиссы и реализации динамического распределения памяти
Получите представление о методах управления памятью, которые доступны Linux разработчикам. Данные методы не ограничиваются языком C, они также применяются и в других языках программирования. Эта статья даёт подробное описание как происходит управление памятью, на примерах ручного подхода (manually), полуавтоматического (semi-manually) с использованием подсчёта ссылок (referencing count) или пула (pooling) и автоматического при помощи сборщика мусора (garbage collection).

Читать далее...

Еще раз про приведение типов в языке С++ или расстановка всех точек над cast

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

Этот пост попытка кратко оформить все, что я читал или слышал из разных источников про операторы приведения типов в языке C++. Информация ориентирована в основном на тех, кто изучает C++ относительно недолго и, как мне кажется, должна помочь понять cпецифику применения данных операторов. Старожилы и гуру С++ возможно помогут дополнить или скорректировать описанную мной картину. Всех интересующихся приглашаю под кат.
Добро пожаловать под кат

Вебинар «Знакомство с FlyElephant»

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

Приветствую Хабр!
Пока наша команда разработчиков активно трудится над новым релизом FlyElephant, я решил устроить вебинар. На нем я расскажу об истории создания проекта, о функционале, который уже доступен и который появится в ближайшее время. Познакомлю с нашей программой бета-тестирования, а также продемонстрирую работу сервиса. В конце вебинара с радостью отвечу на все вопросы.
Приглашаю на него всех, кто связан с научными и высокопроизводительными вычислениями. Вебинар состоится 13 августа в 16.00. Регистрация на него здесь.

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