Форум программистов, компьютерный форум, киберфорум
C++ for fun and for life
Войти
Регистрация
Восстановить пароль
Старый
Преобразование строк в C++: std::from_chars от C++17 до C++26
Запись от NullReferenced размещена 15.03.2025 в 20:26 / C++ for fun and for life
Показов 777 Комментарии 2

Нажмите на изображение для увеличения
Название: a322ada0-7ec7-4ee3-b03d-ffc9f20e904d.jpg
Просмотров: 27
Размер:	130.0 Кб
ID:	10414
Конвертация строк в числа — задача, с которой сталкивается практически каждый C++ разработчик. Несмотря на кажущуюся простоту, эта операция таит множество подводных камней и неочевидных последствий для производительности и надежности кода. До появления C++17 у нас имелся целый зоопарк различных методов для преобразования текстовых данных в числовые значения. Каждый из них обладал своими особенностями и недостатками:

Функции старого стиля из C предлагали...
Аватар для NullReferenced
Старый
Безопасность кода в C++26: Менеджеры ресурсов и висячие ссылки
Запись от NullReferenced размещена 14.03.2025 в 21:16 / C++ for fun and for life
Показов 719 Комментарии 0
Метки c++, c++26

Нажмите на изображение для увеличения
Название: 6a646294-bf3e-4058-89f6-003f9cddccb0.jpg
Просмотров: 38
Размер:	182.2 Кб
ID:	10401
C++ всегда был языком, предоставляющим разработчикам большие возможности и гибкость, но вместе с тем требующим ответственности. Одной из самых коварных проблем даже для опытных программистов остаются висячие ссылки (dangling references) - ссылки на объекты, которые уже прекратили...
Аватар для NullReferenced
Старый
Отложенное высвобождение, RCU и Hazard Pointer в C++26
Запись от NullReferenced размещена 09.03.2025 в 21:57 / C++ for fun and for life
Показов 1530 Комментарии 0

Нажмите на изображение для увеличения
Название: 2077c3fb-bbe3-463e-bead-66dff0597343.jpg
Просмотров: 103
Размер:	319.2 Кб
ID:	10354
Многопоточное программирование стало важной частью современной разработки. Когда несколько потоков одновременно работают с общими данными, возникает целый ряд проблем, связанных с синхронизацией и управлением памятью. Одна из наиболее коварных — проблема ABA....
Аватар для NullReferenced
Старый
Неблокирующийся стек на C++26
Запись от NullReferenced размещена 09.03.2025 в 21:54 / C++ for fun and for life
Показов 1562 Комментарии 0

Нажмите на изображение для увеличения
Название: f4a6a8fa-4d15-457e-8105-35e0c8fde1fc.jpg
Просмотров: 72
Размер:	236.4 Кб
ID:	10355
Традиционные способы синхронизации в многопоточном программировании — мьютексы, семафоры, условные переменные — часто превращаются в узкое место в плане производительности. При этом неблокирующиеся (lock-free) структуры данных позволяют потокам работать параллельно...
Аватар для NullReferenced
Старый
Обработка строк в C++26: Новые возможности string и string_view
Запись от NullReferenced размещена 09.03.2025 в 21:12 / C++ for fun and for life
Показов 1299 Комментарии 0
Метки c++, c++26, string, string_view

Нажмите на изображение для увеличения
Название: f2b5dd1f-c38d-4e28-af9b-c1ec53c26318.jpg
Просмотров: 57
Размер:	105.5 Кб
ID:	10351
Новый стандарт C++26 предлагает много улучшений для работы с привычными string и относительно новыми string_view.
string_view - это невладеющая ссылка на последовательность символов, появившаяся в C++ с версии 17. Другими словами, string_view позволяет работать со строкой, не владея ею — будь то C-строка или экземпляр std::string. Такой подход значительно снижает затраты на копирование, потому что string_view хранит лишь указатель на начало...
Аватар для NullReferenced
Старый
Заполнители и расширенный набор символов в C++26
Запись от NullReferenced размещена 09.03.2025 в 14:05 / C++ for fun and for life
Показов 1821 Комментарии 0
Метки c++, c++26

Нажмите на изображение для увеличения
Название: a4003a94-0ab3-4a73-880f-eb8dd49545c3.jpg
Просмотров: 62
Размер:	198.9 Кб
ID:	10348
C++26 представляет два важных обновления: заполнители и расширенный набор символов. Заполнители (placeholders) решают давнюю проблему лаконичности кода в шаблонных выражениях и лямбда-функциях. Они позволяют создавать более чистый и понятный код там, где раньше приходилось...
Аватар для NullReferenced
Старый
Контракты в C++26
Запись от NullReferenced размещена 09.03.2025 в 13:52 / C++ for fun and for life
Показов 1496 Комментарии 0
Метки c++, c++26

Нажмите на изображение для увеличения
Название: 1977e83d-f396-4ae8-bb4e-8d3e1025b2f0.jpg
Просмотров: 53
Размер:	161.7 Кб
ID:	10346
Контракты – это механизм, позволяющий указывать предусловия, постусловия и инварианты для функций в коде. Эта функциональность должна была стать частью C++20, но была исключена на встрече комитета стандартизации в Кёльне. Отмечу высказывание Херба Саттера, который назвал контракты "самой значимой особенностью C++20 на тот момент и, пожалуй, самой значимой функцией, добавленной в C++ с момента выхода C++11". Наконец, с выходом C++26 у...
Аватар для NullReferenced
Старый
Многопоточность и конкурентность в C++26
Запись от NullReferenced размещена 09.03.2025 в 12:46 / C++ for fun and for life
Показов 1242 Комментарии 0

Нажмите на изображение для увеличения
Название: 3ee9268d-f6e9-4db7-84cc-c42fd0449d27.jpg
Просмотров: 49
Размер:	167.3 Кб
ID:	10345
Ещё в начале 2000-х мы писали многопоточные приложения на C++ с помощью зависимых от платформ библиотек — POSIX threads на Unix-системах и WinAPI на Windows. Код получался неуклюжим, трудно переносимым и, что самое неприятное, склонным к неочевидным багам. Настоящий прорыв случился с выходом C++11, который наконец-то принёс нам стандартные...
Аватар для NullReferenced
Старый
Отражение и метафункции в C++26
Запись от NullReferenced размещена 09.03.2025 в 11:44 / C++ for fun and for life
Показов 1544 Комментарии 0
Метки c++, c++26, reflection

Нажмите на изображение для увеличения
Название: a19f616d-9b6f-4d9e-b535-6634b06d52cf.jpg
Просмотров: 62
Размер:	199.7 Кб
ID:	10344
Стандарт C++98 в свое время добавил базовую поддержку RTTI (информации о типах времени выполнения), но её функциональность была очень ограниченной. Шаблонное метапрограммирование и библиотека type_traits в C++11 немного расширили возможности рефлексии, но для сложных задач приходилось создавать громоздкие конструкции.

Предложение P2996R5 наконец-то вводит настоящее отражение в C++ на уровне языка. Ключевые изменения включают:
  • Оператор отражения
...
Аватар для NullReferenced
Старый
Обзор C++26: Стандартная библиотека
Запись от NullReferenced размещена 08.03.2025 в 22:47 / C++ for fun and for life
Показов 1455 Комментарии 0
Метки c++, c++26

Нажмите на изображение для увеличения
Название: bb90ff62-d2d3-4b59-86f5-59d00acf0ac5.jpg
Просмотров: 76
Размер:	249.8 Кб
ID:	10343
C++26 добавляет много нового в стандартную библиотеку. Эти изменения не выглядят такими впечатляющими как в ядре языка, но среди них есть немало примечательных.

Новые математические константы и функции



Наконец-то в стандартную библиотеку добавлены математические константы. Заголовочный файл <numbers> теперь включает π, e, золотое сечение, константу Эйлера и другие фундаментальные...
Аватар для NullReferenced
Старый
Обзор C++26: Изменения ядра языка
Запись от NullReferenced размещена 08.03.2025 в 22:23 / C++ for fun and for life
Показов 1904 Комментарии 0
Метки c++, c++26

Нажмите на изображение для увеличения
Название: e93a6cfd-0aa2-43d2-b4f0-39cba5447732.jpg
Просмотров: 72
Размер:	245.9 Кб
ID:	10342
C++ развивается и новый стандарт C++26 приносит существенные изменения в ядро языка. Изменения направлены на повышение производительности и безопасности кода. Особого внимания заслуживают рефлексия, контракты и улучшения шаблонов. Эти функции расширят возможности языка, упростят разработку и сделают код более надёжным.

Ключевые улучшения синтаксиса



C++26 добавляет множество синтаксических улучшений, которые...
Аватар для NullReferenced
Старый
Стандарты C++ от C++98 до C++26
Запись от NullReferenced размещена 08.03.2025 в 21:47 / C++ for fun and for life
Показов 1517 Комментарии 0
Метки c++, c++11, c++14, c++17, c++20, c++23, c++26, c++98

Нажмите на изображение для увеличения
Название: a87625d1-ca52-4aa9-99bd-39628c3e265a.jpg
Просмотров: 64
Размер:	194.1 Кб
ID:	10341
Первый официальный стандарт C++ появился на свет в 1998 году, спустя почти два десятилетия после создания самого языка Бьярном Страуструпом. Это был важнейший шаг — C++ наконец-то получил чёткую спецификацию, что положило конец "диалектам" компиляторов и упростило жизнь программистов....
Аватар для NullReferenced
Старый
Как std::execution меняет асинхронное программировани­­­е в C++26
Запись от NullReferenced размещена 08.03.2025 в 21:34 / C++ for fun and for life
Показов 1303 Комментарии 0

Нажмите на изображение для увеличения
Название: 7acbed55-e45e-4028-8b55-27dc0b0c5dbe.jpg
Просмотров: 78
Размер:	277.2 Кб
ID:	10340
Асинхронное программирование долго было одной из самых сложных сторон C++. Мы были вынуждены прибегать к различным библиотекам и способам: от стандартных потоков и future/promise до сторонних решений вроде Boost.Asio или даже полностью самописных систем. C++11, C++14 и C++17 постепенно улучшали ситуацию, но недостаточно....
Аватар для NullReferenced
Новые блоги и статьи
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
Apache Airflow для оркестрации и автоматизации рабочих процессов
Mr. Docker 16.03.2025
Управление сложными рабочими процессами — одна из главных головных болей инженеров данных и DevOps-специалистов. Представьте себе: каждый день нужно запускать десятки скриптов в определенной. . .
Оптимизация приложений Java для ARM
Javaican 16.03.2025
ARM-архитектура переживает настоящий бум популярности в технологическом мире. Когда-то воспринимаемая исключительно как решение для мобильных устройств и встраиваемых систем, сегодня она штурмует. . .
Управление состоянием в Vue 3 с Pinia и Composition API
Reangularity 16.03.2025
Когда я начал работать с Vue несколько лет назад, мне казалось достаточным использовать простую передачу данных через props и события между компонентами. Однако уже на среднем по сложности проекте. . .
Введение в DevSecOps: основные принципы и инструменты
Mr. Docker 16.03.2025
DevSecOps - это подход к разработке программного обеспечения, который объединяет в себе принципы разработки (Dev), безопасности (Sec) и эксплуатации (Ops). Суть подхода заключается в том, чтобы. . .
GitHub Actions vs Jenkins: Сравнение инструментов CI/CD
Mr. Docker 16.03.2025
В этой битве за эффективность и скорость выпуска программных продуктов ключевую роль играют специализированные инструменты. Два гиганта в этой области — GitHub Actions и Jenkins — предлагают разные. . .
Реактивное программировани­е с Kafka Stream и Spring WebFlux
Javaican 16.03.2025
Реактивное программирование – это программная парадигма, ориентированная на потоки данных и распространение изменений. Она позволяет выражать статические или динамические потоки данных и. . .
Простая нейросеть на КуМир: Учебное пособие по созданию и обучению нейронных сетей
EggHead 16.03.2025
Искусственные нейронные сети — удивительная технология, позволяющая компьютерам имитировать работу человеческого мозга. Если вы хотя бы немного интересуетесь современными технологиями, то наверняка. . .
Исполнитель Кузнечик в КуМир: Решение задач
EggHead 16.03.2025
Среди множества исполнителей в системе КуМир особое место занимает Кузнечик — простой, но невероятно полезный виртуальный персонаж, который перемещается по числовой прямой, выполняя ваши команды. На. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru