Senior C++ Developer – Telegram
Senior C++ Developer
12.4K subscribers
1.36K photos
3 videos
612 links
Изучаем C++.

По вопросам сотрудничества: @adv_and_pr

РКН: https://www.gosuslugi.ru/snet/676e9a1e4e740947beca35ba
Download Telegram
Дружим Flutter с С# и С++

На Flutter`е очень удобно и хорошо пишутся интерфейсы для пользователей.

Смотреть статью
Функция isprint()

В C++ isprint() — это предопределенная функция, используемая для обработки строк и символов. cstring — это заголовочный файл, необходимый для строковых функций, а cctype — заголовочный файл, необходимый для символьных функций.

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

Подробнее можно почитать здесь.
Что такое пир-ревью и зачем оно нужно вашей команде

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

Смотреть статью
Узнаем длину аудио файла

В этом примере мы открываем файл с помощью std::ifstream, находим его размер, а затем вычисляем длительность аудио файла, зная частоту дискретизации (в данном случае 44100 Гц). Выводим длительность в минутах и секундах.

Убедитесь, что заменили "your_audio_file.wav" на путь к вашему аудио файлу, а также, если частота дискретизации вашего аудио файла отличается от 44100 Гц, замените это значение на соответствующее значение вашего аудио файла.
Вглубь std::unordered_map: магические числа

Смотреть статью
std::memory_order_release

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

Когда вы используете std::memory_order_release вместе с атомарными операциями записи, такими как std::atomic_store или std::atomic_exchange, это гарантирует, что все предшествующие операции записи, выполненные в этом потоке, завершатся до момента выполнения операции записи с порядком памяти std::memory_order_release. Это гарантирует, что изменения, сделанные в текущем потоке, видны другим потокам после операции записи с порядком памяти std::memory_order_release.

#для_продвинутых
Tiny-dnn

Tiny-dnn — это легкая библиотека глубокого обучения, написанная на C++14. Она предназначена для работы на устройствах с ограниченными вычислительными ресурсами, таких как встраиваемые системы и устройства Интернета вещей (IoT).

#для_продвинутых
Подводные камни С++. Решаем загадки неопределённого поведения

Изучение и понимание неопределённого поведения — важный шаг для разработчика C++, поскольку undefined behavior бывает источником серьёзных ошибок и проблем в программах.

Смотреть статью
Dlib

Dlib — это кроссплатформенная библиотека с открытым исходным кодом, написанная на C++. Она предоставляет широкий спектр инструментов для решения задач машинного обучения и обработки изображений, а также создания сложных программных решений на C++. Dlib написана с акцентом на идеи проектирования по контракту и компонентно-ориентированного программирования, что делает ее набором независимых программных компонентов.

#для_продвинутых
Cinder

Cinder (libCinder) — это бесплатная и open-source библиотека C++ для создания визуального контента и генеративного искусства. Она позиционируется как конкурент Processing, но для C++. Cinder предоставляет широкий набор инструментов для работы с 2D и 3D графикой, аудио, видео, сетями и сенсорным вводом.

#для_продвинутых
APR

APR (Apache Portable Runtime) — это библиотека с открытым исходным кодом, которая обеспечивает кроссплатформенную поддержку для задач разработки программного обеспечения. Она используется в различных приложениях, включая веб-серверы, серверы приложений и сетевые утилиты.

#для_продвинутых
ETL

ETL (Embedded Template Library) — это библиотека шаблонов для C++, предназначенная для использования во встраиваемых системах. В отличие от стандартной библиотеки шаблонов (STL), ETL фокусируется на эффективном использовании ресурсов при работе с ограниченной памятью микроконтроллеров.

#для_продвинутых
libhv

libhv — это кроссплатформенная сетевая библиотека C/C++ для разработки TCP/UDP/SSL/HTTP/WebSocket/MQTT клиентов и серверов. Она позиционируется как более простая в использовании, чем libevent, libev и asio, при этом предлагая событийный цикл с неблокирующим вводом-выводом и таймером, простой API, поддержка богатого набора протоколов.

#для_продвинутых
stdgpu

stdgpu — это библиотека с открытым исходным кодом, предоставляющая универсальные структуры данных GPU для быстрого и надежного управления данными. Она вдохновлена стандартной библиотекой C++ (STL) и предлагает аналогичные интерфейсы и функциональные возможности, но оптимизирована для работы на GPU.

#для_продвинутых
SObjectizer

SObjectizer — это небольшой, но мощный фреймворк с открытым исходным кодом, предназначенный для упрощения разработки многопоточных и распределенных приложений на C++.

#для_продвинутых
Libcds

Libcds (Concurrent Data Structures) — это библиотека C++ для безопасных многопоточных структур данных и методов безопасного освобождения памяти. Она практически header-only, то есть все структуры данных определены в заголовочных .h-файлах, а только реализация ядра алгоритмов SMR (Safe Memory Reclamation) вынесена в небольшую динамическую библиотеку.

#для_продвинутых
nanodbc

nanodbc — это небольшая обертка C++ для нативного C ODBC API. Она позволяет разработчикам C++ легко и удобно взаимодействовать с базами данных, поддерживающими ODBC.

#для_продвинутых
C++ Workflow

C++ Workflow — это набор инструментов и библиотек, предназначенный для упрощения разработки C++-приложений. Он основан на идее разделения приложения на модули, которые могут быть независимо разработаны, протестированы и развернуты.

#для_продвинутых
Алиасы в GIT

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

Например:

git status
git commit -m 'commit'

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

Создаём alias:

git config --global alias.st status
git config --global alias.cm 'commit -m'

Теперь нам не нужно постоянно вводить git status или git commit -m, достаточно ввести:

git st
git cm