cookie

We use cookies to improve your browsing experience. By clicking «Accept all», you agree to the use of cookies.

avatar

C++_BE1

Канал по C/C++, полезный и интересный контент для всех уровней. По вопросам сотрудничества @cyberJohnny

Show more
Advertising posts
999
Subscribers
-324 hours
-187 days
-51430 days

Data loading in progress...

Subscriber growth rate

Data loading in progress...

Photo unavailableShow in Telegram
➡️ Погружаемся в мир асинхронного программирования: корутины в C++ Корутины — это функции, которые могут приостанавливать своё выполнение и возобновлять его позже, сохраняя своё состояние. Это полезно для написания асинхронного кода, ленивых вычислений и генераторов. • Корутины облегчают написание асинхронного кода без сложных состояний и обратных вызовов. • Корутины позволяют реализовать ленивые вычисления и генераторы данных. • Код, использующий корутины, часто более читаемый и поддерживаемый, так как логика остается последовательной. C++ Learning (https://t.me/Learning_pluses) 👩‍💻
Show all...
Photo unavailableShow in Telegram
➡️ Модули (Modules) в C++ Модули - это система сборки и организации кода, представленная в C++20. • Они улучшают компиляцию и организацию кода, предоставляя более четкий и эффективный способ управления зависимостями. • Модули заменяют использование препроцессорных директив #include, улучшая время компиляции и предотвращая проблемы с зависимостями и макросами. • Модули значительно сокращают время компиляции по сравнению с традиционными заголовочными файлами, так как они компилируются только один раз. • Модули предотвращают проблемы, связанные с макросами и конфликтами имен, поскольку они предоставляют четкие границы и изолированные области видимости. • Модули упрощают управление зависимостями и организацию кода, что делает проекты более поддерживаемыми и масштабируемыми. C++ Learning (https://t.me/Learning_pluses) 👩‍💻
Show all...
👍 1
Photo unavailableShow in Telegram
⌛ Что будет выведено при выполнении кода? C++ Learning (https://t.me/Learning_pluses) 👩‍💻
Show all...
Photo unavailableShow in Telegram
➡️ Концепты (Concepts) в C++ Концепты - это новая возможность в C++20, которая позволяет задавать ограничения на шаблонные параметры. Это позволяет писать более безопасный и читаемый код, поскольку компилятор проверяет соответствие типов требованиям концептов на этапе компиляции. • template concept Arithmetic = std::is_arithmetic_v; определяет концепт Arithmetic, который ограничивает типы, для которых значение std::is_arithmetic_v истинно (т.е. типы, которые являются арифметическими). • template T add(const T& a, const T& b) определяет шаблонную функцию add, которая будет компилироваться только для типов, удовлетворяющих концепту Arithmetic. Использование функции add: • Примеры с целыми числами и числами с плавающей запятой успешно вызывают функцию add. • Пример со строками (закомментированный) вызовет ошибку компиляции, так как std::string не является арифметическим типом. C++ Learning (https://t.me/Learning_pluses) 👩‍💻
Show all...
Photo unavailableShow in Telegram
➡️ Делегирование конструкторов • В старом C++ вам нужно создавать функцию-член для инициализации и вызывать ее из всех конструкторов для достижения универсально инициализации. • Но начиная с C++11 конструкторы теперь могут вызывать другие конструкторы из того же класса с помощью списка инициализаторов. C++ Learning (https://t.me/Learning_pluses) 👩‍💻
Show all...
➡️ Удаленные и дефолтные функции struct demo { demo() = default; }; demo d; • У вас вполне закономерно может возникнуть вопрос, зачем вам писать 8+ букв (т.е. = default;), когда можно просто использовать {}, т.е. пустой конструктор? Никто вас не останавливает. Но подумай о конструкторе копирования, операторе копирования присваиванием, и т.д. • Пустой конструктор копирования, например, не то же самое, что конструктор копирования по умолчанию (который будет выполнять почленную копию всех членов). • Вы можете ограничить определенную операцию или способ инстанцирования объекта, просто удалив соответствующий метод, как показано ниже: class demo { int m_x; public: demo(int x) : m_x(x){}; demo(const demo &) = delete; demo &operator=(const demo &) = delete; }; demo obj1{123}; demo obj2 = obj1; // ОШИБКА -- вызов удаленного конструктора копирования obj2 = obj1; // ОШИБКА -- оператор = удален 🗣️ В старом С++ вы должны были сделать его приватным. Но теперь в вашем распоряжении есть директива компилятора delete. C++ Learning (https://t.me/Learning_pluses) 👩‍💻
Show all...

00:09
Video unavailableShow in Telegram
002dc7df94232a6428e0000e78149c5f_452337_1717416387.mp410.48 MB
Yandex DEVent PRO (https://events.yandex.ru/events/deventpro_spb/?utm_source=telegram&utm_medium=cpp&utm_campaign=mg_posev_tg_devent_pro_spb&utm_content=learning_pluses_03_06_24&erid=2VSb5yu4bRJ) в Питере Это серия офлайн-митапов для опытных бэкендеров от команды Поиска и Рекламных технологий. Здесь можно в закрытом формате познакомиться с лидами из других команд, обменяться опытом и пообщаться. В этот раз митап пройдёт в Санкт-Петербурге 19 июня (https://events.yandex.ru/events/deventpro_spb/?utm_source=telegram&utm_medium=cpp&utm_campaign=mg_posev_tg_devent_pro_spb&utm_content=learning_pluses_03_06_24&erid=2VSb5yu4bRJ): будет настоящее раздолье для нетворкинга, а ещё обсуждение горячих и спорных тем по разработке в формате speed dating. Спикеры и доклады: 🟡Константин Гудков, руководитель группы разработки Feature store. Расскажет о процессе создания Feature Store — интерфейса для работы с данными, который используется ML-моделями в Рекламе 🟡Сергей Скворцов, руководитель службы поискового райнтайма. Обсудит, как анализировать производительность нативных программ под Linux под нагрузкой с помощью Perforator 🟡Николай Савушкин, руководитель службы рекомендательных технологий. Расскажет о Real-time processing в рекомендательных системах Яндекса А после докладов вас ждёт афтерпати: кальяны, аэрохоккей и прочие активности! Узнать подробную информацию и зарегистрироваться можно по ссылке (https://events.yandex.ru/events/deventpro_spb/?utm_source=telegram&utm_medium=cpp&utm_campaign=mg_posev_tg_devent_pro_spb&utm_content=learning_pluses_03_06_24&erid=2VSb5yu4bRJ). Ждём вас! Реклама. ООО "Яндекс", ИНН 7736207543.
Show all...

Офлайн-митап для senior backend-разработчиков в культурной столице — Санкт Петербурге

Photo unavailableShow in Telegram
➡️ Циклы for по диапазону • Синтаксический сахар для перебора элементов контейнера. std::array a {1, 2, 3, 4, 5}; for (int& x : a) x *= 2; // a == { 2, 4, 6, 8, 10 } • Обратите внимание на разницу при использовании int в противовес int&: std::array a {1, 2, 3, 4, 5}; for (int x : a) x *= 2; // a == { 1, 2, 3, 4, 5 } C++ Learning (https://t.me/Learning_pluses) 👩‍💻
Show all...
Объявляю ошибку вида if (x = 42) вымирающей и заношу её в Красную книгу C и C++ багов https://pvs-studio.ru/ru/blog/posts/cpp/1127/
Show all...
Объявляю ошибку вида if (x = 42) вымирающей и заношу её в Красную книгу C и C++ багов

Если спросить программиста, какие баги чаще всего можно встретить в C и C++ коде, он назовёт разыменование нулевого указателя, неопределённое поведение, выход за границу массива и другие, на его...