Очередной #дайджест по C++:
🤖 Подводные камни C++. Решаем загадки неопределённого поведения, ч. 2
Продолжение известной статьи по неопределенному поведению.
🤖 Первые новинки C++26: итоги летней встречи ISO
На недавней встрече комитет C++ активно взялся за C++26. Уже есть первые новинки, которые нас будут ждать в готовящемся стандарте C++.
🤖 Как я вошёл в клуб бага 323
Это история о баге, который бы заставил вас рвать на себе волосы. Из-за такого бага вы можете подумать: «Но это невозможно, должно быть, компилятор сломался, других вариантов нет!»
🤖 Создание вашего собственного массива
Пост фокусируется на дизайнерских решениях.
🤖 Внутри STL: конструктор shared_ptr и make_shared
🤖 Подводные камни C++. Решаем загадки неопределённого поведения, ч. 2
Продолжение известной статьи по неопределенному поведению.
🤖 Первые новинки C++26: итоги летней встречи ISO
На недавней встрече комитет C++ активно взялся за C++26. Уже есть первые новинки, которые нас будут ждать в готовящемся стандарте C++.
🤖 Как я вошёл в клуб бага 323
Это история о баге, который бы заставил вас рвать на себе волосы. Из-за такого бага вы можете подумать: «Но это невозможно, должно быть, компилятор сломался, других вариантов нет!»
🤖 Создание вашего собственного массива
Пост фокусируется на дизайнерских решениях.
🤖 Внутри STL: конструктор shared_ptr и make_shared
Variadic templates
Variadic templates — это механизм, позволяющий определять шаблоны функций и классов, принимающие переменное количество аргументов. Он позволяет писать более гибкий и универсальный код, способный работать с разным числом параметров.
С помощью вариативных шаблонов вы можете определить функции или классы, принимающие любое количество аргументов определенных типов. Это особенно полезно, например, при написании функций форматирования строк, обобщенных контейнеров и других ситуаций, когда количество аргументов может варьироваться.
#код
Variadic templates — это механизм, позволяющий определять шаблоны функций и классов, принимающие переменное количество аргументов. Он позволяет писать более гибкий и универсальный код, способный работать с разным числом параметров.
С помощью вариативных шаблонов вы можете определить функции или классы, принимающие любое количество аргументов определенных типов. Это особенно полезно, например, при написании функций форматирования строк, обобщенных контейнеров и других ситуаций, когда количество аргументов может варьироваться.
#код
Рецензия на книгу: полное руководство по стандартным алгоритмам C++
Подробное ревью на каждый абзац книги со ссылкой на скачивание в конце. Пользуйтесь!
Читать рецензию
Подробное ревью на каждый абзац книги со ссылкой на скачивание в конце. Пользуйтесь!
Читать рецензию
Семантика перемещения
Семантика перемещения позволяет эффективно перемещать ресурсы между объектами без копирования данных. Это понятие стало особенно актуальным в свете улучшений, внесенных в язык C++11 и последующих стандартах.
Семантика перемещения решает проблемы, связанные с копированием больших данных или ресурсов, что может быть очень затратным по времени и памяти. Вместо копирования данные «перемещаются» из одного объекта в другой, при этом исходный объект теряет право владения этими данными. Это осуществляется с использованием специальных методов и операторов, таких как конструктор перемещения (move constructor) и оператор перемещения (move assignment operator).
#код
Семантика перемещения позволяет эффективно перемещать ресурсы между объектами без копирования данных. Это понятие стало особенно актуальным в свете улучшений, внесенных в язык C++11 и последующих стандартах.
Семантика перемещения решает проблемы, связанные с копированием больших данных или ресурсов, что может быть очень затратным по времени и памяти. Вместо копирования данные «перемещаются» из одного объекта в другой, при этом исходный объект теряет право владения этими данными. Это осуществляется с использованием специальных методов и операторов, таких как конструктор перемещения (move constructor) и оператор перемещения (move assignment operator).
#код
Что выведет код сверху?
Ответ:
10 99 40 99
В этой программе мы меняем местами определенные значения в двух векторах с помощью iter_swap.
#вопросы_с_собеседований
Ответ:
#вопросы_с_собеседований
🥷Это путь воина
Напоминаем, что «Библиотека программиста» запустила два новых канала специально для специалистов по C++ и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по C++ — тут мы готовимся к интервью
👉Библиотека задач по C++ — тут решаем задачи, проходим тесты и изучаем код
Напоминаем, что «Библиотека программиста» запустила два новых канала специально для специалистов по C++ и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по C++ — тут мы готовимся к интервью
👉Библиотека задач по C++ — тут решаем задачи, проходим тесты и изучаем код
Указатель на функцию
Указатель на функцию в C++ представляет собой переменную, которая хранит адрес функции. Это позволяет вызывать функции через указатель и передавать их как аргументы другим функциям.
Указатели на функции могут быть использованы для создания таблиц функций, динамической загрузки библиотек, а также для реализации различных паттернов программирования, таких как обратный вызов (callback) и динамическое определение функциональности.
#код
Указатель на функцию в C++ представляет собой переменную, которая хранит адрес функции. Это позволяет вызывать функции через указатель и передавать их как аргументы другим функциям.
Указатели на функции могут быть использованы для создания таблиц функций, динамической загрузки библиотек, а также для реализации различных паттернов программирования, таких как обратный вызов (callback) и динамическое определение функциональности.
#код
Официальный репозиторий симулятора архитектуры компьютерной системы gem5.
Открыть репозиторий
Кстати, у нас есть канал с вопросами с собеседований по С++. Подписывайтесь!
Открыть репозиторий
Кстати, у нас есть канал с вопросами с собеседований по С++. Подписывайтесь!
👨💻 Большой рассказ про C++
C++ стал популярен за счёт своей скорости: его считают идеальным балансом между временем выполнения и временем реализации задачи.
В видео для джунов описан путь C++ программиста, а для разработчиков постарше — много информации про статический анализ, компиляторы, скорость выполнения и при чём тут вообще Rust.
Смотреть видео
C++ стал популярен за счёт своей скорости: его считают идеальным балансом между временем выполнения и временем реализации задачи.
В видео для джунов описан путь C++ программиста, а для разработчиков постарше — много информации про статический анализ, компиляторы, скорость выполнения и при чём тут вообще Rust.
Смотреть видео
Очередной #дайджест по С++:
✍️ Недостатки корутин в C++
Эта статья написана с целью подчеркнуть некоторые риски, связанные с переносом базы кода на использование корутин.
✍️ Неопределённое поведение в C/C++ и приёмы против лома
Rust-разработчиков бесит неопределенное поведение в С++, поэтому автор предлагает погрузиться в эту тему как можно глубже.
✍️ Базовый набор для решения задач на LeetCode/Codeforces
Описаны основные тактики решения популярных на собеседованиях задач.
✍️ Как мы за один день наняли много C++ разработчиков
Статья будет полезна тимлидам, ищущим пополнение в команду.
✍️ Муравьиный алгоритм | Задача коммивояжёра
О классическаяой комбинаторной задаче, в которой необходимо найти самый короткий маршрут, проходящий через все заданные города, и вернуться в начальную точку.
✍️ Недостатки корутин в C++
Эта статья написана с целью подчеркнуть некоторые риски, связанные с переносом базы кода на использование корутин.
✍️ Неопределённое поведение в C/C++ и приёмы против лома
Rust-разработчиков бесит неопределенное поведение в С++, поэтому автор предлагает погрузиться в эту тему как можно глубже.
✍️ Базовый набор для решения задач на LeetCode/Codeforces
Описаны основные тактики решения популярных на собеседованиях задач.
✍️ Как мы за один день наняли много C++ разработчиков
Статья будет полезна тимлидам, ищущим пополнение в команду.
✍️ Муравьиный алгоритм | Задача коммивояжёра
О классическаяой комбинаторной задаче, в которой необходимо найти самый короткий маршрут, проходящий через все заданные города, и вернуться в начальную точку.
Считаете ли вы, что в вашей компании уделяется слишком много времени на ненужные созвоны и мало времени на разработку?
#интерактив
#интерактив
❗Ищем копирайтера
Нам нужен человек, который:
— Любит IT и русский язык.
— Понимает разницу между бэкендом и фронтендом, OWASP и MISRA, функциональным программированием и ООП, микроконтроллером и миникомпьютером, UX и UI.
— Имеет опыт работы от 1 года.
— Будет плюсом, если вы программируете на каком-нибудь языке на уровне стажера/джуна.
Что нужно делать:
— Готовить подборки, ТОПы книг, ютуб- и телеграм-каналов по языкам программирования.
— Делать расшифровки топовых Ютуб-роликов по теме программирования и оформлять их в виде статей.
— Готовить новостные заметки.
— Актуализировать старые статьи.
— Брать интервью у экспертов. Мы поможем с поиском экспертов.
— Иногда писать небольшие рекламные посты в телеграм.
— Писать статьи с кодом, переводить статьи (по желанию, оплачивается отдельно).
Можно использовать нейронки?
— Да, главное, чтобы материал получился интересный.
Условия:
— Белая зарплата: 50 000 руб.
— Возможность работать удаленно.
👉Присылайте свои резюме: [email protected]
Нам нужен человек, который:
— Любит IT и русский язык.
— Понимает разницу между бэкендом и фронтендом, OWASP и MISRA, функциональным программированием и ООП, микроконтроллером и миникомпьютером, UX и UI.
— Имеет опыт работы от 1 года.
— Будет плюсом, если вы программируете на каком-нибудь языке на уровне стажера/джуна.
Что нужно делать:
— Готовить подборки, ТОПы книг, ютуб- и телеграм-каналов по языкам программирования.
— Делать расшифровки топовых Ютуб-роликов по теме программирования и оформлять их в виде статей.
— Готовить новостные заметки.
— Актуализировать старые статьи.
— Брать интервью у экспертов. Мы поможем с поиском экспертов.
— Иногда писать небольшие рекламные посты в телеграм.
— Писать статьи с кодом, переводить статьи (по желанию, оплачивается отдельно).
Можно использовать нейронки?
— Да, главное, чтобы материал получился интересный.
Условия:
— Белая зарплата: 50 000 руб.
— Возможность работать удаленно.
👉Присылайте свои резюме: [email protected]
Имплементация
Имплементация означает создание кода, который реализует определенную функциональность или алгоритм на конкретном языке программирования. Это процесс написания программного кода, который осуществляет определенное поведение, описанное в спецификации или дизайне.
В C++ «имплементация» означает написание кода, который реализует методы, функции или классы, описанные в заголовочных файлах (header files). Заголовочные файлы содержат объявления (прототипы) функций и классов, а файлы с исходным кодом (.cpp) содержат реализацию этих функций и методов.
#код
Имплементация означает создание кода, который реализует определенную функциональность или алгоритм на конкретном языке программирования. Это процесс написания программного кода, который осуществляет определенное поведение, описанное в спецификации или дизайне.
В C++ «имплементация» означает написание кода, который реализует методы, функции или классы, описанные в заголовочных файлах (header files). Заголовочные файлы содержат объявления (прототипы) функций и классов, а файлы с исходным кодом (.cpp) содержат реализацию этих функций и методов.
#код
🔍Насколько легко «войти в айти»?
IT — перспективная отрасль с высокими зарплатами и огромной конкуренцией. Собираем ваши истории: расскажите, как вам удалось сменить профессию (или сразу найти себя), какие шаги вы для этого предприняли и с какими сложностями пришлось столкнуться.
👉Пройдите наш 10-минутный опрос по ссылке.
IT — перспективная отрасль с высокими зарплатами и огромной конкуренцией. Собираем ваши истории: расскажите, как вам удалось сменить профессию (или сразу найти себя), какие шаги вы для этого предприняли и с какими сложностями пришлось столкнуться.
👉Пройдите наш 10-минутный опрос по ссылке.
📖➕➕ ТОП-10 книг по языку программирования С++ в 2023 году
Подборка свежей литературы на русском языке для желающих постичь С++: язык микроконтроллеров, игровых движков, драйверов и высоконагруженных приложений.
Читать статью
Подборка свежей литературы на русском языке для желающих постичь С++: язык микроконтроллеров, игровых движков, драйверов и высоконагруженных приложений.
Читать статью