Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Старый
Многопоточные приложения на C++
Запись от bytestream размещена 14.05.2025 в 19:47
Показов 4512 Комментарии 0

Нажмите на изображение для увеличения
Название: 4e009c31-70d0-4d8e-bc16-3b818495be02.jpg
Просмотров: 71
Размер:	240.0 Кб
ID:	10808
C++ всегда был языком, тесно работающим с железом, и потому особеннно эффективным для многопоточного программирования. Стандарт C++11 произвёл революцию, добавив в язык нативную поддержку потоков, мьютексов и атомарных операций. Последующие стандарты — C++14, C++17 и C++20...
Аватар для bytestream
Старый
POCO, ACE, Loki и другие продвинутые C++ библиотеки
Запись от NullReferenced размещена 13.05.2025 в 11:02 / C++ for fun and for life
Показов 6390 Комментарии 1
Метки ace, c++, loki, poco

Нажмите на изображение для увеличения
Название: fa3b7093-68fb-4c86-9169-39061eea4fee.jpg
Просмотров: 41
Размер:	248.8 Кб
ID:	10802
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет надёжное, производительное и, что немаловажно, кроссплатформенное решение. Основанная Гюнтером Обильчнигом в 2004 году, эта библиотека с годами превратилась из маленького побочного проекта в полноценный набор инструментов, которым пользуются тысячи разработчиков.

Создание

...
Аватар для NullReferenced
Старый
Битва за скорость: может ли Java догнать Rust и C++?
Запись от Javaican размещена 11.05.2025 в 10:39 / Making Java great for ever
Показов 1453 Комментарии 0

Нажмите на изображение для увеличения
Название: ec45ed67-87f2-45cd-a8af-245969b336d9.jpg
Просмотров: 73
Размер:	182.7 Кб
ID:	10789
Java, с её мантрой "напиши один раз, запускай где угодно", десятилетиями остаётся в тени своих "быстрых" собратьев, когда речь заходит о сырой вычислительной мощи. Rust и C++ традиционно занимают пьедестал в гонке за скоростью, но действительно ли разрыв настолько непреодолим, как принято считать?

Современная экосистема Java претерпела колоссальные изменения — от экспериментальных JIT-компиляторов...
Аватар для Javaican
Старый
C++ и OpenCV - Гайд по продвинутому компьютерному зрению
Запись от bytestream размещена 10.05.2025 в 20:08
Показов 4351 Комментарии 0

Нажмите на изображение для увеличения
Название: 0ac0fea5-8637-4944-9d28-71d5c308e84a.jpg
Просмотров: 59
Размер:	270.4 Кб
ID:	10786
Компьютерное зрение — одна из тех технологий, которые буквально меняют мир на наших глазах. Если оглянуться на несколько лет назад, то сложно представить, что алгоритмы смогут не просто распознавать объекты на фотографиях, но и воссоздавать трёхмерные модели из...
Аватар для bytestream
Старый
Безопасность исключений и RAII в C++
Запись от NullReferenced размещена 09.05.2025 в 20:36 / C++ for fun and for life
Показов 3326 Комментарии 0
Метки c++, raii, security

Нажмите на изображение для увеличения
Название: 553d9f95-3823-4502-b94d-3c71372ade59.jpg
Просмотров: 108
Размер:	316.7 Кб
ID:	10778
В C++ есть две стороны медали: сила явного управления ресурсами и связанная с этим опасность их утечки. Каждый, кто хоть раз ловил себя на мысли "забыл освободить память" или устранял зависший дескриптор файла, знает – без надёжных механизмов управления ресурсами...
Аватар для NullReferenced
Старый
Форматирование текста с std::format в C++
Запись от bytestream размещена 07.05.2025 в 15:03
Показов 1375 Комментарии 0
Метки c++, c++20, std::format

Нажмите на изображение для увеличения
Название: 8907d03d-3a4c-4c84-bcc1-0ab1b715076b.jpg
Просмотров: 30
Размер:	234.3 Кб
ID:	10761
Форматирование текста — одна из самых распространённых задач, с которыми сталкивается каждый разработчик. За долгую историю C++ было создано несколько подходов к решению этой казалось бы тривиальной проблемы, но, как часто бывает в мире программирования, у каждого из них обнаружились свои недостатки. Всё начиналось с печально известного семейства функций printf, унаследованных из языка C. Помню свой первый крупный проект на C++ — я тогда...
Аватар для bytestream
Старый
Гайд по std::span в C++
Запись от NullReferenced размещена 07.05.2025 в 10:39 / C++ for fun and for life
Показов 2967 Комментарии 0
Метки c++, c++20, std::span

Нажмите на изображение для увеличения
Название: 855ddf89-42d5-41a7-9291-cd590bf5d516.jpg
Просмотров: 41
Размер:	273.6 Кб
ID:	10756
std::span — это решение реальной проблемы, с которой сталкиваются все C++ разработчики: как эффективно передавать последовательности данных между функциями, не вдаваясь в детали их внутренного представления? Раньше нам приходилось писать перегрузки функций для разных типов контейнеров, создавать собственные адаптеры или просто использовать указатели с длиной — все эти подходы не только неэлегантны, но и чреваты ошибками. Вся прелесть std::span в его универсальности....
Аватар для NullReferenced
Старый
Создание микросервисов с gRPC и Protobuf в C++
Запись от bytestream размещена 06.05.2025 в 11:29
Показов 2945 Комментарии 0

Нажмите на изображение для увеличения
Название: ac5668fa-cb15-465a-a5d2-cc7eacdb0bce.jpg
Просмотров: 68
Размер:	213.4 Кб
ID:	10751
Монолитные приложения, которые ещё недавно считались стандартом индустрии, уступают место микросервисной архитектуре — подходу, при котором система разбивается на небольшие автономные сервисы, каждый из которых отвечает за конкретную бизнес-функцию. Такая декомпозиция...
Аватар для bytestream
Старый
Рейтинг: 5.00. Голосов: 1.
Реализация своих итераторов в C++
Запись от NullReferenced размещена 05.05.2025 в 10:20 / C++ for fun and for life
Показов 1199 Комментарии 0
Метки c++

Нажмите на изображение для увеличения
Название: db53fca5-4a8f-4d9a-9f3c-948b0ffc694d.jpg
Просмотров: 69
Размер:	191.0 Кб
ID:	10746
Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их внутренней реализации. Создание собственных итераторов — это как...
Аватар для NullReferenced
Старый
Реализация шаблонов проектирования GoF на C++
Запись от NullReferenced размещена 04.05.2025 в 15:56 / C++ for fun and for life
Показов 1260 Комментарии 0
Метки c++, gof, oop, patterns, ооп

Нажмите на изображение для увеличения
Название: 06b915df-a9ba-4bd4-8fa0-728b5554a9c9.jpg
Просмотров: 57
Размер:	270.8 Кб
ID:	10739
"Банда четырёх" (Gang of Four или GoF) — Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес — в 1994 году сформировали канон шаблонов, который выдержал проверку временем. И хотя C++ претерпел немало изменений с тех пор (попробуйте сравнить C++98 и C++20 — это как сопоставить телегу с космическим кораблем), подходы GoF остаются актуальными....
Аватар для NullReferenced
Старый
Многопоточность в C++: Современные техники C++26
Запись от bytestream размещена 04.05.2025 в 12:33
Показов 2909 Комментарии 0

Нажмите на изображение для увеличения
Название: 4a8b9049-fd0e-4828-9530-42a780e5da71.jpg
Просмотров: 54
Размер:	332.2 Кб
ID:	10732
C++ долго жил по принципу "один поток — одна задача" — как старательный солдатик, выполняющий команды одну за другой. В то время, когда процессоры уже обзавелись несколькими ядрами, этот подход стал похож на ситуацию, когда в комнате полно рабочих, но только один из них что-то делает, а остальные курят в сторонке.

До стандарта C++11 многопоточность в C++ напоминала дикий запад — каждый выживал как мог. Программисты...
Аватар для bytestream
Старый
Использование корутин C++ для асинхронных задач
Запись от bytestream размещена 03.05.2025 в 20:09
Показов 2537 Комментарии 0

Нажмите на изображение для увеличения
Название: 31565451-1274-451d-a716-f5afb409ce3a.jpg
Просмотров: 48
Размер:	183.3 Кб
ID:	10727
Разработчики, погруженные в мир современного программирования, ежедневно сталкиваются с неизбежным сближением высокой производительности и простоты кода. Асинхронное программирование – одна из тех областей, где достичь этого баланса традиционно считалось...
Аватар для bytestream
Старый
Алгоритм Дейкстры на C++
Запись от NullReferenced размещена 02.05.2025 в 22:15 / C++ for fun and for life
Показов 3880 Комментарии 0
Метки algorithm, c++, c++20, dijkstra

Нажмите на изображение для увеличения
Название: 39be7ef8-cfb5-4583-a7d8-3f51b266635b.jpg
Просмотров: 70
Размер:	247.5 Кб
ID:	10719
Среди алгоритмов поиска кратчайшего пути алгоритм Дейкстры – настоящий старожил, который, несмотря на почтенный возраст, остаётся одним из самых востребованных инструментов в арсенале программиста. Разработанный нидерландским учёным Эдсгером Дейкстрой в 1956...
Аватар для NullReferenced
Старый
Конкурентность, асинхронность и параллелизм в C++
Запись от NullReferenced размещена 02.05.2025 в 12:55 / C++ for fun and for life
Показов 2430 Комментарии 0

Нажмите на изображение для увеличения
Название: 054cc24f-11a2-42ec-9f9e-ac086a45ae40.jpg
Просмотров: 30
Размер:	197.1 Кб
ID:	10710
Конкурентность и параллелизм — два термина, которые нередко используются как синонимы, хотя между ними пролегает пропасть смысла. Конкурентность — это возможность выполнять задачи с перекрывающимися временными рамками, даже если на самом деле они выполняются...
Аватар для NullReferenced
Старый
Resource Acquisition is Initialization (RAII) в C++
Запись от NullReferenced размещена 01.05.2025 в 21:57 / C++ for fun and for life
Показов 2141 Комментарии 0
Метки c++, raii, stroustrup

Нажмите на изображение для увеличения
Название: 582664cf-a0c3-4929-aaf3-02df46b56c28.jpg
Просмотров: 59
Размер:	268.0 Кб
ID:	10705
Кодишь на C++? Тогда ты наверняка сталкивался с этой ситуацией: выделил память, поработал с ней, а потом... забыл освободить. Или открыл файл, но не закрыл его из-за неожиданого исключения. Такие мелочи превращаются в сложно отлавливаемые баги, утечки памяти и выброшеные...
Аватар для NullReferenced
Старый
Создание своего пула потоков на C++
Запись от bytestream размещена 01.05.2025 в 14:07
Показов 2641 Комментарии 1

Нажмите на изображение для увеличения
Название: 9dc32d80-0500-4757-8090-cfed9a45873d.jpg
Просмотров: 42
Размер:	150.4 Кб
ID:	10703
Стандартная библиотека C++ со времен C++11 значительно упростила работу с потоками, но, как ни странно, до сих пор не предоставляет готового пула потоков. Некоторые сторонние решения, конечно, существуют, но они либо слишком тяжеловесны, либо недостаточно гибки для специфических...
Аватар для bytestream
Старый
C++ в XXI веке - Эволюция языка и взгляд Бьярне Страуструпа
Запись от bytestream размещена 29.04.2025 в 13:54
Показов 4985 Комментарии 0
Метки c++, c++20, c++23, c++26, stroustrup

Нажмите на изображение для увеличения
Название: 38c6a74a-1e51-4fc9-b831-be09c85bc409.jpg
Просмотров: 40
Размер:	143.3 Кб
ID:	10696
C++ существует уже более 45 лет с момента его первоначальной концепции. Как и было задумано, он эволюционировал, отвечая на новые вызовы, но многие разработчики продолжают использовать C++ так, будто на дворе всё ещё прошлое тысячелетие — когда телефоны приходилось...
Аватар для bytestream
Старый
Разработка кастомных расширений для компилятора C++
Запись от NullReferenced размещена 29.04.2025 в 12:21 / C++ for fun and for life
Показов 4701 Комментарии 0
Метки c++, clang, llvm

Нажмите на изображение для увеличения
Название: a9f576c6-981d-4502-a5ec-189299c2435e.jpg
Просмотров: 36
Размер:	145.4 Кб
ID:	10694
Создание кастомных расширений для компиляторов C++ — инструмент оптимизации кода, внедрения новых языковых функций и автоматизации задач. Многие разработчики недооценивают гибкость современных компиляторов и возможности их настройки. Расширения позволяют вмешиваться в процесс компиляции...
Аватар для NullReferenced
Старый
Динамические массивы в C++ - создание и использование
Запись от NullReferenced размещена 27.04.2025 в 19:16 / C++ for fun and for life
Показов 3845 Комментарии 0
Метки c++

Нажмите на изображение для увеличения
Название: ae6608eb-1188-4d85-a28e-7bdf860854a1.jpg
Просмотров: 86
Размер:	233.2 Кб
ID:	10687
Динамические массивы представляют собой один из фундаментальных инструментов программирования на C++, позволяющий создавать структуры данных, размер которых определяется во время выполнения программы, а не на этапе компиляции. В отличие от статических массивов, которые имеют фиксированный размер, динамические массивы обеспечивают гибкость и эффективное использование памяти, необходимые для создания сложных и масштабируемых приложений.

Понятие динамических

...
Аватар для NullReferenced
Старый
Параллельное программирование с OpenMP в C++
Запись от NullReferenced размещена 24.04.2025 в 22:11 / C++ for fun and for life
Показов 5257 Комментарии 0

Нажмите на изображение для увеличения
Название: a3b7cbf5-0bfe-473b-a6f6-8d068214c588.jpg
Просмотров: 75
Размер:	239.1 Кб
ID:	10645
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для разработчиков, стремящихся максимально использовать возможности современного оборудования. Когда речь заходит о C++, одним из самых доступных и мощных инструментов для реализации параллелизма становится OpenMP (Open Multi-Processing). Эта технология представляет собой...
Аватар для NullReferenced
Старый
Итераторы в C++: Продвинутые техники использования
Запись от bytestream размещена 16.04.2025 в 17:50
Показов 3157 Комментарии 0
Метки c++

Нажмите на изображение для увеличения
Название: 45e6629f-8035-416b-a9c4-275a664c6c50.jpg
Просмотров: 54
Размер:	292.2 Кб
ID:	10601
Итераторы - одна из самых гибких и выразительных концепций в C++, позволяющих абстрагировать обход элементов контейнера от его внутренней реализации. За прошедшие годы они эволюционировали от простых указателей до сложных абстракций, способных выражать бесконечные последовательности, ленивые...
Аватар для bytestream
Старый
Хеш-функции std::hash в C++ программировании
Запись от NullReferenced размещена 15.04.2025 в 21:49 / C++ for fun and for life
Показов 3423 Комментарии 1
Метки c++, std::hash

Нажмите на изображение для увеличения
Название: c291931c-58dd-48f4-be87-0bbf6ceae25a.jpg
Просмотров: 62
Размер:	313.1 Кб
ID:	10596
Хеширование — фундаментальная концепция в компьютерных науках, играющая важную роль в эффективной обработке и хранении данных. В C++ функциональность std::hash является неотъемлемой частью стандартной библиотеки, предоставляя разработчикам надежный инструмент для работы с хеш-значениями. По своей сути, хеширование представляет процесс...
Аватар для NullReferenced
Старый
Кастомные аллокаторы в C++ и оптимизация управления памятью
Запись от bytestream размещена 14.04.2025 в 15:54
Показов 4509 Комментарии 0
Метки c++

Нажмите на изображение для увеличения
Название: 67dc6cbc-8032-46f7-a85b-4a2bcb5aeaba.jpg
Просмотров: 61
Размер:	180.5 Кб
ID:	10590
Работа с памятью в С++ всегда была и остаётся одной из самых увлекательных и сложных задач для программиста. Любой опытный C++ разработчик подтвердит: стандартные механизмы аллокации памяти – штука удобная, но подчас совершенно негибкая. Типичный вызов new и delete прекрасно работает в большинстве повседневных задач, но стоит вашему приложению выйти на территорию высокой производительности...
Аватар для bytestream
Старый
std::expected в C++: Управление ошибками
Запись от bytestream размещена 12.04.2025 в 19:16
Показов 4455 Комментарии 0
Метки c++, c++23, std::expected

Нажмите на изображение для увеличения
Название: 9aacaf76-f3e3-4128-a329-189c8f3d92cb.jpg
Просмотров: 65
Размер:	174.0 Кб
ID:	10583
Обработка ошибок всегда была важной и одновременно сложной задачей в программировании на C++. На протяжении долгого времени разработчики использовали различные подходы: возвращаемые коды ошибок, исключения, специальные значения или указатели. Каждый метод имел свои недостатки: коды ошибок затрудняли...
Аватар для bytestream
Старый
Статическое и динамическое связывание в C++
Запись от bytestream размещена 09.04.2025 в 11:08
Показов 1817 Комментарии 0
Метки c++, linking

Нажмите на изображение для увеличения
Название: 2d3a6baf-3c46-4f72-a9d5-0ea7fb0fd22b.jpg
Просмотров: 64
Размер:	155.4 Кб
ID:	10558
Связывание в C++ — одна из тех "невидимых" технических сторон программирования, о которой многие имеют лишь поверхностное представление, хотя эта концепция критически влияет на производительность, безопасность и удобство сопровождения кода. Если вы когда-нибудь...
Аватар для bytestream
Старый
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
Запись от NullReferenced размещена 07.04.2025 в 13:15 / C++ for fun and for life
Показов 3666 Комментарии 0
Метки c++, c++20, c++23, c++26, std::ranges

Нажмите на изображение для увеличения
Название: bf44ba56-2caf-4fac-9629-78846ff8a82d.jpg
Просмотров: 114
Размер:	237.7 Кб
ID:	10547
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от использования массивов в C-стиле до современной библиотеки ranges. Однако некоторые казалось бы простые операции, как объединение нескольких последовательностей, долгое время...
Аватар для NullReferenced
Старый
Рейтинг: 5.00. Голосов: 1.
Многопоточное программирование: Rust против C++
Запись от golander размещена 06.04.2025 в 10:49 / go go just go
Показов 4411 Комментарии 0

Нажмите на изображение для увеличения
Название: 791ba567-8ab9-4c84-ae70-c8d54f3f2740.jpg
Просмотров: 138
Размер:	120.5 Кб
ID:	10540
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих версиях (C++17 и C++20) набор многопоточных инструментов значительно расширился. Однако исторический багаж и обратная совместимость привели к тому, что параллельное программирование в C++ часто связано с множеством подводных камней.

Rust изначально проектировался...
Аватар для golander
Старый
std::vector в C++: от основ к оптимизации производительности
Запись от NullReferenced размещена 05.04.2025 в 22:11 / C++ for fun and for life
Показов 4682 Комментарии 0
Метки c++, openmp, std::vector

Нажмите на изображение для увеличения
Название: 444c0ef1-5c73-40f4-87e4-2499dc811586.jpg
Просмотров: 55
Размер:	288.0 Кб
ID:	10539
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector объединяет в себе гибкость динамических структур данных с эффективностью, сравнимой с обычными массивами C. Именно это сочетание делает его незаменимым для множества задач - от простейших алгоритмов до высоконагруженных...
Аватар для NullReferenced
Старый
std::mutex в C++: Советы и примеры использования
Запись от bytestream размещена 03.04.2025 в 11:03
Показов 3133 Комментарии 0

Нажмите на изображение для увеличения
Название: ff86457d-b65b-4186-826d-a8876f864e2b.jpg
Просмотров: 137
Размер:	208.6 Кб
ID:	10516
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство предотвращения состояний гонки (race conditions) при доступе к разделяемым данным. По сути, мьютекс работает как замок: поток блокирует его перед входом в критическую секцию и разблокирует после выхода.

В контексте многопоточного программирования на C++ мьютексы...
Аватар для bytestream
Старый
std::span в C++: Производительность и лучшие практики
Запись от NullReferenced размещена 28.03.2025 в 22:18 / C++ for fun and for life
Показов 5887 Комментарии 0
Метки c++, c++20, std::span

Нажмите на изображение для увеличения
Название: 6e36176d-7698-445c-b8ad-0b85590be921.jpg
Просмотров: 159
Размер:	134.0 Кб
ID:	10492
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление непрерывной последовательности объектов, которое ссылается на существующие...
Аватар для NullReferenced
Новые блоги и статьи
Облако проектов
russiannick 01.06.2025
Слава Джа, написал прогу для компиляции. Значит написал компилятор? Обьем кода 300+ строк. Язык-яву. Вводим данные, заполняем поля, тычем радиобаттоны. И по итогу в поле результат получам листинг. . .
Rust и квантовые вычисления: интеграция с Q# и Qiskit
golander 01.06.2025
Мир квантовых вычислений традиционно оставался закрытым клубом для высокоуровневых языков типа Python и специализированных DSL вроде Q#. Однако в последние годы Rust начал тихую революцию в этой. . .
Кэш REDIS и C#
UnmanagedCoder 01.06.2025
Redis (Remote Dictionary Server) - это ультраскоростное хранилище данных в оперативной памяти, работающее по принципу "ключ-значение". Суть проста: данные хранятся не на диске, а прямо в RAM, что. . .
Lenovo IH110CX Rev: 1.0 motherboard manual
Maks 01.06.2025
Размещения без повторений
VistaSV30 31.05.2025
Код возвращает список вариантов размещений A^{k}_{n}=\frac{n!}{(n-k)!} from itertools import permutations def pwr(k, n): # Размещение без повторений (Placement without repetition) if k. . .
Redis и Node.js с TypeScript - решения для высоконагруженных систем
Reangularity 31.05.2025
Redis (Remote Dictionary Server) — сверхбыстрое хранилище данных в памяти, способное обрабатывать операции за микросекунды. И что особенно важно для нас — с удивительно простым API. А теперь. . .
Unit-тестирование с моками в Go
golander 31.05.2025
Большинство разработчиков предпочитают тестировать код без использования моков. Например, при интеграции с Elasticsearch логичнее запустить контейнер локально и тестировать Go-код непосредственно с. . .
Как работать с PDF в C#
stackOverflow 31.05.2025
Нам приходится сталкиваться с PDF по разным причинам. Генерация счетов, создание отчетов, извлечение данных из загруженных пользователем документов, автоматизация рабочих процесов - это лишь верхушка. . .
Двухбуквенные коды стран в шифровании.
russiannick 31.05.2025
Человечество издревле манила возможность замены сочетаний букв вымышленными символами, делающие сообщение понятным только для посвещенных. Настала пора внести в это свой вклад. Двухбуквенные коды. . .
Мой опыт в исправлении ошибки приложения Boinc в части заряда батареи смартфона.
Programma_Boinc 31.05.2025
Мой опыт в исправлении ошибки приложения Boinc в части заряда батареи смартфона. Хотел бы поделиться опытом в исправлении ошибки приложения в части заряда батареи смартфона. Сразу скажу, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
OSZAR »