С++ (1 курс, весна 2023) Мещерин И.С. Часть 1
C++ 1. std::map, std::list
C++ 2. unordered_map, allocator_traits и allocator aware containers
C++ 3. Перегрузка new/delete, Alignments and bit fields, Scoped allocators, std::move
C++ 4. Реализация std::move, rvalue and lvalue + Семинар
С++ 5. Perfect forwarding and Universal references
C++ 6. xvalues, RVO, copy elision, move_if_noexcept
C++ 7. Лямбда-функция
источник
#cpp #programming
👉 @cpp_lib
C++ 1. std::map, std::list
C++ 2. unordered_map, allocator_traits и allocator aware containers
C++ 3. Перегрузка new/delete, Alignments and bit fields, Scoped allocators, std::move
C++ 4. Реализация std::move, rvalue and lvalue + Семинар
С++ 5. Perfect forwarding and Universal references
C++ 6. xvalues, RVO, copy elision, move_if_noexcept
C++ 7. Лямбда-функция
источник
#cpp #programming
👉 @cpp_lib
❤🔥10❤1👎1🔥1🦄1
С++ (1 курс, весна 2023) Мещерин И.С. Часть 2
C++ 8. std::function / std::bind / std::any
C++ 9. unions / small strings optimization
C++ 10. std::variant / std::visit
C++ 11. std::launder. std::visit impl. Инстанцирование шаблонов. SFINAE, enable_if.
С++ 12. Концепты / constexpr function
C++ 13. Objects as non-type template parameters / consteval / std::is_constant_evaluated
источник
#cpp #programming
👉 @cpp_lib
C++ 8. std::function / std::bind / std::any
C++ 9. unions / small strings optimization
C++ 10. std::variant / std::visit
C++ 11. std::launder. std::visit impl. Инстанцирование шаблонов. SFINAE, enable_if.
С++ 12. Концепты / constexpr function
C++ 13. Objects as non-type template parameters / consteval / std::is_constant_evaluated
источник
#cpp #programming
👉 @cpp_lib
❤8👍2👎1🦄1
This media is not supported in your browser
VIEW IN TELEGRAM
Live++ (универсальный инструмент горячей перезагрузки C++), работающий на Xbox Series X
источник
#cpp #programming
👉 @cpp_lib
источник
#cpp #programming
👉 @cpp_lib
👍4
Media is too big
VIEW IN TELEGRAM
Что такое Low Latency C++? Доклад Тимура Думлера.
Часто говорят, что C++ - отличный язык для систем с низкой задержкой, таких как высокочастотная торговля, обработка звука и видеоигры. Но что именно мы подразумеваем под "низкой задержкой"? Чем это отличается от "высокой производительности"? И что делает C++ отличным языком для этого? Этот доклад - попытка ответить на эти вопросы. Мы рассмотрим примеры использования низкой задержки в этих различных отраслях, установим их общие черты и различия, обсудим типичные проблемы в системах с низкой задержкой, а также методы C++ для их преодоления.
источник
#cpp #programming
👉 @cpp_lib
Часто говорят, что C++ - отличный язык для систем с низкой задержкой, таких как высокочастотная торговля, обработка звука и видеоигры. Но что именно мы подразумеваем под "низкой задержкой"? Чем это отличается от "высокой производительности"? И что делает C++ отличным языком для этого? Этот доклад - попытка ответить на эти вопросы. Мы рассмотрим примеры использования низкой задержки в этих различных отраслях, установим их общие черты и различия, обсудим типичные проблемы в системах с низкой задержкой, а также методы C++ для их преодоления.
источник
#cpp #programming
👉 @cpp_lib
👍2
Multithreading in C++ (потоки, блокировки, задачи, атомарные операции, очереди сообщений)
https://www.youtube.com/watch?v=z6M5YCWm4Go
#cpp #programming
👉 @cpp_lib
https://www.youtube.com/watch?v=z6M5YCWm4Go
#cpp #programming
👉 @cpp_lib
YouTube
Лекция 5. Multithreading in C++ (потоки, блокировки, задачи, атомарные операции, очереди сообщений)
Лекция №5 в курсе "Эффективное использование С++"
Преподаватель Валерий Михайлович Лесин
Преподаватель Валерий Михайлович Лесин
👍1
В крайности – Fold-выражения
Выражения сложения существуют в C++ начиная с C++17 и существенно влияют на то, как мы обращаемся с переменными шаблонами. Когда-то давно я писал о выражениях сложения в рамках серии о метапрограммировании, но сегодня мы рассмотрим крайние случаи использования выражений сложения.
Прежде чем мы начнем, сделаем важную оговорку: В этой статье примеры кода показывают использование вариативных шаблонов с аргументами, передаваемыми по значению, без их пересылки. Это сделано для того, чтобы упростить их и сосредоточиться на идее, лежащей в основе примеров.
https://cppsenioreas.wordpress.com/2023/05/22/into-the-extreme-fold-expressions/
#cpp #programming
👉 @cpp_lib
Выражения сложения существуют в C++ начиная с C++17 и существенно влияют на то, как мы обращаемся с переменными шаблонами. Когда-то давно я писал о выражениях сложения в рамках серии о метапрограммировании, но сегодня мы рассмотрим крайние случаи использования выражений сложения.
Прежде чем мы начнем, сделаем важную оговорку: В этой статье примеры кода показывают использование вариативных шаблонов с аргументами, передаваемыми по значению, без их пересылки. Это сделано для того, чтобы упростить их и сосредоточиться на идее, лежащей в основе примеров.
https://cppsenioreas.wordpress.com/2023/05/22/into-the-extreme-fold-expressions/
#cpp #programming
👉 @cpp_lib
C++ Senioreas
Into the Extreme – Fold-Expressions
Fold-expressions in the extreme. How do fold-expressions behave when there is no arguments? what about a single argument case?
👍4
👨💻 Yandex Cloud, Yandex 360 и Yandex Infrastructure — это точки притяжения талантливых инженеров
Приходите на прямой эфир, чтобы узнать про ключевые вызовы команды.
На встрече расскажем, как мы развиваем инфраструктуру Яндекса, строим публичную облачную платформу и виртуальный офис для клиентов.
📍20 июня 2023 г., в 16:00
Эфир будет полезен бэкенд-разработчикам и SRE, которым интересно узнать, какие задачи мы решаем и кого мы ищем.
Регистрируйтесь по ссылке!
Приходите на прямой эфир, чтобы узнать про ключевые вызовы команды.
На встрече расскажем, как мы развиваем инфраструктуру Яндекса, строим публичную облачную платформу и виртуальный офис для клиентов.
📍20 июня 2023 г., в 16:00
Эфир будет полезен бэкенд-разработчикам и SRE, которым интересно узнать, какие задачи мы решаем и кого мы ищем.
Регистрируйтесь по ссылке!
👍2
Использование классов enum в качестве битовых масок.
Перечисления являются основной частью языков C и C++ и повсеместно используются для моделирования логически различных состояний в программных системах. Однако могут возникнуть ситуации, когда необходимо смоделировать набор состояний, не исключающих друг друга. Есть несколько других способов написать это, включая определение битовых полей, использование
https://voithos.io/articles/enum-class-bitmasks/
#cpp #programming
👉 @cpp_lib
Перечисления являются основной частью языков C и C++ и повсеместно используются для моделирования логически различных состояний в программных системах. Однако могут возникнуть ситуации, когда необходимо смоделировать набор состояний, не исключающих друг друга. Есть несколько других способов написать это, включая определение битовых полей, использование
std::bitset
или даже std::vector<bool>
, но вы также можете использовать для этого перечисления, рассматривая их как битмаски.https://voithos.io/articles/enum-class-bitmasks/
#cpp #programming
👉 @cpp_lib
👍6🥱1
Ссылки и ссылочные типы в C++
Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это пятая статья из серии, список предыдущих статей приведен в конце в разделе 6. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Эта статья посвящена ссылкам и ссылочным типам в C++.
Термин «ссылка» широко используется и в обыденной жизни, в компьютерных и других науках и поэтому его смысл сильно зависит от контекста использования. В языках программирования под ссылкой понимают небольшой объект, главная задача которого обеспечить доступ к другому объекту, расположенному в другом месте, имеющему другой размер и т.д. Объекты ссылки удобно использовать на стеке, они легко копируются, что позволяет получить доступ к объекту, на который эта ссылка ссылается, из разных точек кода. В той или иной форме ссылки поддерживаются во всех языках программирования. В ряде языков программирования, таких как C#, Java, Pyton и многих других, ссылки, по существу, являются концептуальным ядром.
https://habr.com/ru/articles/646005/
#cpp #programming
👉 @cpp_lib
Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это пятая статья из серии, список предыдущих статей приведен в конце в разделе 6. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Эта статья посвящена ссылкам и ссылочным типам в C++.
Термин «ссылка» широко используется и в обыденной жизни, в компьютерных и других науках и поэтому его смысл сильно зависит от контекста использования. В языках программирования под ссылкой понимают небольшой объект, главная задача которого обеспечить доступ к другому объекту, расположенному в другом месте, имеющему другой размер и т.д. Объекты ссылки удобно использовать на стеке, они легко копируются, что позволяет получить доступ к объекту, на который эта ссылка ссылается, из разных точек кода. В той или иной форме ссылки поддерживаются во всех языках программирования. В ряде языков программирования, таких как C#, Java, Pyton и многих других, ссылки, по существу, являются концептуальным ядром.
https://habr.com/ru/articles/646005/
#cpp #programming
👉 @cpp_lib
Хабр
Ссылки и ссылочные типы в C++
Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это пятая статья из серии, список предыдущих статей...
👍5
Массивы в C++
Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это четвертая статья из серии, первые три, посвященные перегрузке в C++, находятся здесь, здесь и здесь.
Эта статья посвящена массивам. Массивы можно отнести к наиболее древним слоям C++, они пришли из первых версий C. Тем не менее, массивы вошли в объектно-ориентированную систему типов C++, хотя и с определенными оговорками. Программисту важно знать об этих особенностях, чтобы избежать потенциальных ошибок. В статье также рассмотрено другое наследие C – тривиальные типы и неинициализированные переменные. Часть нововведений C++11, С++14, С++17 затрагивают работу с массивами, все эти новые возможности также подробно описаны. Итак, попробуем рассказать о массивах все.
https://habr.com/ru/articles/495444/
#cpp #programming
👉 @cpp_lib
Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это четвертая статья из серии, первые три, посвященные перегрузке в C++, находятся здесь, здесь и здесь.
Эта статья посвящена массивам. Массивы можно отнести к наиболее древним слоям C++, они пришли из первых версий C. Тем не менее, массивы вошли в объектно-ориентированную систему типов C++, хотя и с определенными оговорками. Программисту важно знать об этих особенностях, чтобы избежать потенциальных ошибок. В статье также рассмотрено другое наследие C – тривиальные типы и неинициализированные переменные. Часть нововведений C++11, С++14, С++17 затрагивают работу с массивами, все эти новые возможности также подробно описаны. Итак, попробуем рассказать о массивах все.
https://habr.com/ru/articles/495444/
#cpp #programming
👉 @cpp_lib
Хабр
Массивы в C++
Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это четвертая статья из серии, первые три,...
👍4
Рефакторинг с использованием C++17 std::optional
Существует множество ситуаций, когда вам нужно выразить, что что-то является "необязательным" - объект, который может содержать значение или нет. У вас есть несколько вариантов реализации такого случая, но в C++17 появился, пожалуй, самый полезный способ: std::optional.
Сегодня я подготовил один пример рефакторинга, где вы можете научиться применять эту новую возможность C++17.
https://www.cppstories.com/2018/04/refactoring-with-c17-stdoptional/
#cpp #programming
👉 @cpp_lib
Существует множество ситуаций, когда вам нужно выразить, что что-то является "необязательным" - объект, который может содержать значение или нет. У вас есть несколько вариантов реализации такого случая, но в C++17 появился, пожалуй, самый полезный способ: std::optional.
Сегодня я подготовил один пример рефакторинга, где вы можете научиться применять эту новую возможность C++17.
https://www.cppstories.com/2018/04/refactoring-with-c17-stdoptional/
#cpp #programming
👉 @cpp_lib
👍4
На грани между exceptions и std::expected
Посмотрев на новый тип из грядущего стандарта под названием std::expected я пришел к интересному на мой взгляд мнению, что можно немного переосмыслить его суть и сделать несколько ближе к исключениям.
В данной статье хочу немного рассказать о небольшом исследовании реализации expected, в которой используется стирание типа ошибки.
https://habr.com/ru/articles/737408/
#cpp #programming
👉 @cpp_lib
Посмотрев на новый тип из грядущего стандарта под названием std::expected я пришел к интересному на мой взгляд мнению, что можно немного переосмыслить его суть и сделать несколько ближе к исключениям.
В данной статье хочу немного рассказать о небольшом исследовании реализации expected, в которой используется стирание типа ошибки.
https://habr.com/ru/articles/737408/
#cpp #programming
👉 @cpp_lib
Хабр
На грани между exceptions и std::expected
Посмотрев на новый тип из грядущего стандарта под названием std::expected я пришел к интересному на мой взгляд мнению, что можно немного переосмыслить его суть и сделать несколько ближе к исключениям....
👍5