C++ — TechCave

C++ — компилируемый строго типизированный язык программирования общего назначения.

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

Стена группы

Загрузка...
3 дня назад
#

Основные понятия стандартной библиотеки С++



Данная статья определяет основные понятия стандартной библиотеки С++. Она приводится для того чтобы на неё ссылаться в дальнейшем.

Наибольшей частью стандартной библиотеки С++ является библиотека STL (Standard Template Library – Стандартная Библиотека Шаблонов). Библиотека STL содержит пять основных видов компонентов:

  • контейнер (container): управляет набором объектов в памяти.

  • итератор (iterator): обеспечивает для алгоритма средство доступа к содержимому контейнера.

  • алгоритм (algorithm): определяет вычислительную процедуру.

  • функциональный объект (function object): инкапсулирует функцию в объекте для использования другими компонентами.

  • адаптер (adaptor): адаптирует компонент для обеспечения различного интерфейса.





Источник
Загрузка...
6 дней назад
#

Simple MCerver — небольшая оболочка для сервера Minecraft



Здравствуйте. Я изучаю C++ и хочу представить свою небольшую наработку — оболочку для сервера Minecraft с открытым исходным кодом.

Источник
Загрузка...
6 дней назад
#

Об опыте общения с генератором сигнала через QTcpSocket и SCPI



Интро

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

Об этом в статье и пойдет речь.

Источник
Загрузка...
6 дней назад
#

Работа с API КОМПАС-3D → Урок 14 → Многострочный текст



На предыдущем уроке мы рассмотрели, как выводить многострочный текст с помощью параграфа. Описанный способ требует ручного обхода массива выводимых строк. На данном уроке мы рассмотрим альтернативный способ, лишенный этого недостатка. В его основе лежит интерфейс
ksTextParam и метод
ksTextEx.



Источник
Загрузка...
6 дней назад
#

Как писать unit-тесты для акторов? Подход SObjectizer-а



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

В общем, писать многопоточные приложения с использованием акторов легко и приятно. В том числе и потому, что сами акторы пишутся легко и непринужденно. Можно даже сказать, что написание кода актора — это самая простая часть работы. Но вот когда актор написан, то возникает очень хороший вопрос: «Как проверить правильность его работы?»

Вопрос, действительно, очень хороший. Нам его регулярно задают когда мы рассказываем про акторов вообще и про
SObjectizer в частности. И до недавнего времени мы могли отвечать на этот вопрос лишь общими словами.

Но вот
вышла версия 5.5.24, в которой появилась экспериментальная поддержка возможности unit-тестирования акторов. И в данной статье мы попытаемся рассказать о том, что это, как этим пользоваться и с помощью чего это было реализовано.

Источник
Загрузка...
22 дня назад
#

Как перестать писать прошивки для микроконтроллеров. Пример





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



Источник
Загрузка...
22 дня назад
#

Написание системы попарно взаимодействующих частиц на C++ с использованием DirectX 11





На хабре уже есть много статей про использование вычислительных шейдеров с Unity, однако статью о использовании вычислительного шейдера на «чистом» Win32 API + DirectX 11 затруднительно. Однако эта задача ненамного сложнее, подробнее — под катом.



Для этого будем использовать:



  • Windows 10

  • Visual Studio 2017 Community Edition с модулем «Разработка классических приложений на C++»



Источник
Загрузка...
26 дней назад
#

Полное руководство по CMake. Часть третья: Тестирование и пакетирование





Введение

Данная статья повествует о тестировании и пакетировании программ при помощи CMake — гибкого и универсального набора утилит для разработки различных программных продуктов. Строго рекомендуется прочитать первую и вторую части руководства во избежание непонимания синтаксиса и принципа работы CMake.



Источник
Загрузка...
26 дней назад
#

История одного эксперимента с Cython и C++ vector



Одним тёплым холодным зимним вечером, хотелось согреться в офисе и проверить теорию одного коллеги, что C++ vector мог бы быстрее справиться с задачей, чем CPython list.



В компании мы разрабатываем продукты на базе Django и случилось так, что нужно было обработать один большой массив словарей. Коллега предположил, что реализация на C++ была бы гораздо быстрее, а меня не покидало чувство, что Гвидо и сообщество наверное немного круче нас в Си и возможно уже решили и обошли все подводные камни, реализовав всё гораздо быстрее.



Для проверки теории, я решил написать небольшой тестовый файл, в котором решил прогнать в цикле вставку 1М словарей одинакового содержания в массив и в vector 100 раз подряд.



Результаты хоть и были ожидаемые, но так же и внезапные.



Источник
Загрузка...
26 дней назад
#

Проблемы использования функции NtQuerySystemInformation с недокументированными аргументами



Утро в тот день началось с того, что у нас «сломались if'ы». Это выражение было когда-то придумано одним моим коллегой, который демонстрировал, как у него отладчик при пошаговом проходе по коду заходит в блок if, при том, что условие, которое if проверял, было абсолютно точно равно false. Проблема в тот раз оказалась тривиальной — он использовал релизный оптимизированный билд, а при таком сценарии доверять пошаговой отладке, конечно, нельзя. Но само выражение «сломались if'ы» прижилось и использовалось у нас с тех пор для обозначения ситуации, когда перестало работать что-то настолько фундаментальное, что в это даже с трудом верилось.

Так вот, в тот день у нас сломалась функция
NtQuerySystemInformation — одна из важнейших функций ОС Windows, возвращающая информацию о процессах, потоках, системных дескрипторах и т.д. О пользе от использования данной функции я когда-то писал вот
эту статью. Но оказалось, что иногда могут отказывать даже подобные краеугольные камни системы.

Итак, что же произошло.

Источник
Загрузка...
26 дней назад
#

Мысли о Rust 2019



Коллеги, доброго вечера всем!

Мы с радостью предлагаем вам перевод по-настоящему программной статьи от
Рафа Левина, чей титанический труд над развитием языка Rust вызывает уважение и пиетет:



Без ложной скромности и без шапкозакидательства, предметно и увлеченно уважаемый автор откликнулся на призыв сообщества Rust, опубликованный по ссылке в начале этой статьи. Надеемся, получилось интересно и жизнеутверждающе.

Источник
Загрузка...
26 дней назад
#

Разрушительные исключения



Ещё раз о том, почему плохо бросать исключения в деструкторах

Многие знатоки C++ (например, Герб Саттер) учат нас, что бросать исключения в деструкторах плохо, потому что в деструктор можно попасть во время раскрутки стека при уже выброшенном исключении, и если в этот момент будет выброшено ещё одно исключение, в результате будет вызван std::terminate(). Стандарт языка C++17 (здесь и далее я ссылаюсь на свободно доступную версию драфта N4713) на эту тему сообщает нам следующее:



Источник
Загрузка...
28 дней назад
#

Прикручиваем мультиплеер к мобильной игре «Составь слова из слова» на iOS и Android, написанной на C++



Ранее я уже писал о своем опыте разработки мобильной
словесной игры на Android и iOS, которая пользуется определенной популярностью, и я решил прикрутить к ней режим мультиплеера, когда два игрока соревнуются между собой, составляя слова по очереди, как заключительном раунде телепередачи Сергея Супонева «Звездный час».



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

Источник
Загрузка...
28 дней назад
#

Как перестать писать прошивки для микроконтроллеров и начать жить. Часть I





Здравствуйте, меня зовут Евгений, и мне надоело писать прошивки для микроконтроллеров. Как это это случилось и что с этим делать, давайте разберемся.



Источник
Загрузка...
29 дней назад
#

Проверка проекта LibrePCB с помощью PVS-Studio внутри Docker контейнера



PVS-Studio and Docker Container

Это классическая статья о том, как наша команда проверила открытый проект LibrePCB с помощью статического анализатора кода PVS-Studio. Однако статья интересна тем, что проверка осуществлялась внутри Docker контейнера. Если вы использует контейнеры, то надеемся, что статья продемонстрирует ещё один простой способ встроить анализатор в процесс разработки.

Источник
Загрузка...
2 3

Авторизация

Пользователи

Kumskov
Juan
Tutu
naikdij88
NewEXE
Георгiй Москвитинъ
Andpyxa Tutunnik
Andrey_fox
Jane linch

GeekBrains

Нетология