|
|
rss_habr
std::conditional_variable и std::atomic_flag в С++20Понедельник, 02 Января 2023 г. 18:00 (ссылка)
С++20 добавил новую функциональность для atomic_flag. Посмотрим как ее можно использовать, сравним с conditional_variable. Читать далееhttps://habr.com/ru/post/708918/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708918
rss_habr
[Перевод] Какую модель памяти следует использовать в языке Rust?Вторник, 08 Ноября 2022 г. 12:50 (ссылка)
https://habr.com/ru/post/697882/?utm_source=habrahabr&utm_medium=rss&utm_campaign=697882
rss_habr
[Перевод] Упрощаем код с помощью if constexpr и концептов C++17/C++20Пятница, 16 Сентября 2022 г. 16:11 (ссылка)
До C++17 у нас было несколько довольно неэлегантных способов написать Ну что ж, давайте разберемся, как мы можем использовать это в качестве замены https://habr.com/ru/post/688688/?utm_source=habrahabr&utm_medium=rss&utm_campaign=688688
rss_habr
[Перевод] Пользовательские типы и std::format в C++20Среда, 07 Сентября 2022 г. 12:26 (ссылка)
В этой статье я расскажу, как реализовать пользовательские средства форматирования (форматтеры) в соответствии с новой https://habr.com/ru/post/686900/?utm_source=habrahabr&utm_medium=rss&utm_campaign=686900
rss_habr
Feature freeze С++23. Итоги летней встречи комитетаВторник, 26 Июля 2022 г. 10:51 (ссылка)
На недавней встрече комитет C++ «прорвало», и в черновую версию C++23 добавили:
https://habr.com/ru/post/678760/?utm_source=habrahabr&utm_medium=rss&utm_campaign=678760
rss_habr
[Перевод] Эволюция лямбд в C++14, C++17 и C ++20Понедельник, 27 Июня 2022 г. 12:41 (ссылка)
Лямбда-выражения — одна из самых популярных фич современного C++. С тех пор, как они были представлены в C++11, лямбды проникли практически в каждую кодовую базу на C++. Цель этой статьи — рассказать об основных эволюционных этапах в истории лямбда-выражений. Читать далееhttps://habr.com/ru/post/673580/?utm_source=habrahabr&utm_medium=rss&utm_campaign=673580
rss_habr
Holy C++Воскресенье, 19 Июня 2022 г. 20:10 (ссылка)
В этой статье постараюсь затронуть все вещи, которые можно без зазрения совести выкинуть из С++ не потеряв ничего(кроме боли), уменьшить стандарт, нагрузку на создателей компиляторов, студентов изучающих язык и мемосоздавательный потенциал громадности С++ В первую очередь хочется убрать из языка то, что приводит к частым ошибкам и мешает развитию языка, тут идеальным кандидатом можно назвать 1 - union - сумм тип из 70х, в С идея хранения одного типа из нескольких в одном участке памяти выглядит неплохо и сейчас, ведь там все типы это набор байт с заданным размером. В С++ же использование union это автоматическое undefined behavior, например: Читать далее!https://habr.com/ru/post/672282/?utm_source=habrahabr&utm_medium=rss&utm_campaign=672282
rss_habr
[Перевод] В апреле выйдет GNU Compiler Collection 12Вторник, 26 Апреля 2022 г. 23:23 (ссылка)
Смягчение уязвимости Trojan Source, оптимизация функций приведения типов, многомерный оператор [], подавление предупреждений о вендорных атрибутах — вот лишь некоторые возможности GCC 12. Подробностями делимся к старту курса по разработке на C++. Читать далееhttps://habr.com/ru/post/662932/?utm_source=habrahabr&utm_medium=rss&utm_campaign=662932
rss_habr
Обзор всего доступного в С++ type erasureВоскресенье, 24 Апреля 2022 г. 14:05 (ссылка)
Техника стирания типов - type erasure - известна довольно давно, хоть её и долго не замечали. Тем не менее кажется только в последнюю декаду она стала из игрушки и костылей превращаться в мощный инструмент, использующийся каждый день в разработке. Если спросить современного С++ разработчика какие примеры type erasure он видел / использовал, то вероятно он ответит что то про std::function и возможно про std::any, но это лишь малая часть всех применений этого замечательного инструмента! В статье я постараюсь описать все возможные виды type erasure в современном С++, но начать стоит с определения. Стирание типов - потеря части информации о типе так, чтобы получившийся после "стирания всего ненужного" тип был общим для всех стираемых, а значит его можно будет использовать в рамках системы типов, опираясь только на оставшуюся после стирания информацию. Начнём с того, что было уже в С и о чём часто забывают говоря об erasure void* - мы стёрли всю информацию о типе под указателем, не можем ничего прочитать, но с другой стороны доступ к данным у нас абсолютно без оверхеда! Достаточно угадать тип. Часто внутри именно на этом и построены другие более сложные стирания. Ну и конечно примерно в эту труху из байтов компилятор перетирает всю нашу систему типов в процессе работы. Кстати, насчёт байтов: std::byte (since C++17) / unsigned char / char так исторически сложилось, что в С все использовали чары для работы с сырыми байтами, поэтому для них в языке С++ исключение и указатель на них можно приводить к указателю на любой другой тип. Это не обходится без последствий и иногда из-за этого строки теряют некоторые оптимизации, поэтому сначала добавили std::byte, а потом начали потихоньку заменять чары (char8_t since C++20), но это уже совсем другая история. В контексте стирания типов нам важно, что мы получили способность читать данные из стёртого типа, а составив массив мы получим ещё и верхнюю границу размера типа, что конечно немного, но с void и так нельзя. [erased]https://habr.com/ru/post/662628/?utm_source=habrahabr&utm_medium=rss&utm_campaign=662628
rss_habr
[recovery mode] Как перестать некорректно выражаться в кодеПонедельник, 11 Апреля 2022 г. 14:08 (ссылка)
Мудрецы мира С++ часто напоминают нам о том как важно максимально точно выражать свои мысли в коде, делать код понятным и простым, не теряя при этом (а зачастую и выигрывая) в эффективности. Но задумайтесь как выглядит в С++ код связанный с динамическим полиморфизмом. Взглянуть на С++ по новомуhttps://habr.com/ru/post/660201/?utm_source=habrahabr&utm_medium=rss&utm_campaign=660201
|
LiveInternet.Ru |
Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат О проекте: помощь|контакты|разместить рекламу|версия для pda |