🤔 Очередной #дайджест по С++
➕ Быстрые и надёжные сигналы-слоты в C++ — библиотека сигналов-слотов, совместимая с Boost.Signals2
➕ userver 1.0 — о крупных вещах (вебсокеты, MySQL) и о библиотеке для повседневной C++ разработки (FastPimpl, TrivialBiMap)
➕ Мигаем OLED дисплеем и делаем измеритель концентрации CO2 — рассказ о любопытном микроконтроллере на ядре RISC-V и простое первое устройство
➕ Coding Challenges — для новичков и не только, ищущих идеи для практики
➕ Обходы деревьев — знакомство с деревьями, бинарными деревьями и немного интересной теории
➕ Быстрые и надёжные сигналы-слоты в C++ — библиотека сигналов-слотов, совместимая с Boost.Signals2
➕ userver 1.0 — о крупных вещах (вебсокеты, MySQL) и о библиотеке для повседневной C++ разработки (FastPimpl, TrivialBiMap)
➕ Мигаем OLED дисплеем и делаем измеритель концентрации CO2 — рассказ о любопытном микроконтроллере на ядре RISC-V и простое первое устройство
➕ Coding Challenges — для новичков и не только, ищущих идеи для практики
➕ Обходы деревьев — знакомство с деревьями, бинарными деревьями и немного интересной теории
Что используется для написания многострочных комментариев в C ++?
Anonymous Quiz
89%
/*........*/
8%
//
1%
/$--------$/
2%
Ничего из вышеперечисленного
🧠Чему вы бы хотели научиться?
Расскажите нам о ваших пожеланиях: какие навыки вы хотели бы прокачать в ближайшее время или какую профессию хотели бы приобрести?
За прохождение опроса вы получите промокод на скидку 15% на все наши курсы до конца 2024 года.
👉Опрос по ссылке👈
Расскажите нам о ваших пожеланиях: какие навыки вы хотели бы прокачать в ближайшее время или какую профессию хотели бы приобрести?
За прохождение опроса вы получите промокод на скидку 15% на все наши курсы до конца 2024 года.
👉Опрос по ссылке👈
Variadic templates
Variadic templates — это механизм, позволяющий определять шаблоны функций и классов, принимающие переменное количество аргументов. Он позволяет писать более гибкий и универсальный код, способный работать с разным числом параметров.
С помощью вариативных шаблонов вы можете определить функции или классы, принимающие любое количество аргументов определенных типов. Это особенно полезно, например, при написании функций форматирования строк, обобщенных контейнеров и других ситуаций, когда количество аргументов может варьироваться.
Variadic templates — это механизм, позволяющий определять шаблоны функций и классов, принимающие переменное количество аргументов. Он позволяет писать более гибкий и универсальный код, способный работать с разным числом параметров.
С помощью вариативных шаблонов вы можете определить функции или классы, принимающие любое количество аргументов определенных типов. Это особенно полезно, например, при написании функций форматирования строк, обобщенных контейнеров и других ситуаций, когда количество аргументов может варьироваться.
Please open Telegram to view this post
VIEW IN TELEGRAM
Подборка лучших статей «Библиотеки программиста» за ноябрь: сохраняй в заметки, чтобы прочесть позже #самыйсок
🧑💻🪜 6 карьерных советов программисту
⚖️ 25 курсов, книг и подкастов для развития критического мышления
🔈16+ лучших нейронок для синтеза речи
⭐️ FAQ по трудоустройству: разбираем самые популярные вопросы
👀 6 способов привлечь внимание работодателя
🏆 Самые популярные языки программирования 2023
📰❌ 10 признаков фейковой вакансии
🧑💻🪜 6 карьерных советов программисту
⚖️ 25 курсов, книг и подкастов для развития критического мышления
🔈16+ лучших нейронок для синтеза речи
⭐️ FAQ по трудоустройству: разбираем самые популярные вопросы
👀 6 способов привлечь внимание работодателя
🏆 Самые популярные языки программирования 2023
📰❌ 10 признаков фейковой вакансии
Перед вами два примера кода для печати вектора. Есть ли преимущества использования одного или другого?
Пример 1:
Пример 2:
Хотя оба кода будут генерировать одинаковые выходные данные, пример 2 является более производительным вариантом. Это связано с тем, что оператор после инкремента itr++ обходится дороже, чем оператор перед инкрементом ++itr.
Оператор пост-инкремента генерирует копию элемента, прежде чем приступить к увеличению элемента и возврату копии. Более того, большинство компиляторов автоматически оптимизируют пример 1, неявно преобразуя его в пример 2.
Пример 1:
c++
vector vec;
/* ... .. ... */
for (auto itr = vec.begin(); itr != vec.end(); itr++) {
itr->print();
}
Пример 2:
c++
vector vec;
/* ... .. ... */
for (auto itr = vec.begin(); itr != vec.end(); ++itr) {
itr->print();
}
Оператор пост-инкремента генерирует копию элемента, прежде чем приступить к увеличению элемента и возврату копии. Более того, большинство компиляторов автоматически оптимизируют пример 1, неявно преобразуя его в пример 2.
Семантика перемещения
Семантика перемещения позволяет эффективно перемещать ресурсы между объектами без копирования данных. Это понятие стало особенно актуальным в свете улучшений, внесенных в язык C++11 и последующих стандартах.
Семантика перемещения решает проблемы, связанные с копированием больших данных или ресурсов, что может быть очень затратным по времени и памяти. Вместо копирования данные «перемещаются» из одного объекта в другой, при этом исходный объект теряет право владения этими данными. Это осуществляется с использованием специальных методов и операторов, таких как конструктор перемещения (move constructor) и оператор перемещения (move assignment operator).
Семантика перемещения позволяет эффективно перемещать ресурсы между объектами без копирования данных. Это понятие стало особенно актуальным в свете улучшений, внесенных в язык C++11 и последующих стандартах.
Семантика перемещения решает проблемы, связанные с копированием больших данных или ресурсов, что может быть очень затратным по времени и памяти. Вместо копирования данные «перемещаются» из одного объекта в другой, при этом исходный объект теряет право владения этими данными. Это осуществляется с использованием специальных методов и операторов, таких как конструктор перемещения (move constructor) и оператор перемещения (move assignment operator).
🤔 Очередной #дайджест по С++
🔘 Простая реализация arena-friendly hash map — демонстрация техники создания кастомных хэш-мапов в сочетании с arena allocation
🔘 Понимание пользовательских пространств имен Linux — использование оболочки для создания кастомных пространств имен и экспериментов с ними
🔘 Книга C++ System Programming Cookbook — книга послужит справочником для разработчиков, которые хотят иметь готовые к использованию решения для основных аспектов системного программирования
🔘 Pure Virtual Cast — переговоры и торг за зарплату
🔘 Магия swizzle из шейдеров в C++ — почему swizzle удобно юзать для различных операций с малоразмерными векторами и игровыми сущностями в виде позиций, размера или цветов.
🔘 Простая реализация arena-friendly hash map — демонстрация техники создания кастомных хэш-мапов в сочетании с arena allocation
🔘 Понимание пользовательских пространств имен Linux — использование оболочки для создания кастомных пространств имен и экспериментов с ними
🔘 Книга C++ System Programming Cookbook — книга послужит справочником для разработчиков, которые хотят иметь готовые к использованию решения для основных аспектов системного программирования
🔘 Pure Virtual Cast — переговоры и торг за зарплату
🔘 Магия swizzle из шейдеров в C++ — почему swizzle удобно юзать для различных операций с малоразмерными векторами и игровыми сущностями в виде позиций, размера или цветов.
🌎 ТОП-10: рейтинг лучших зарубежных работодателей в IT
При составлении рейтинга учитывали различные факторы из открытых данных портала Glassdoor, включая отзывы сотрудников, уровень лояльности действующих и бывших сотрудников, зарплата, льготы, бонусы и прочие бенефиты.
1️⃣ Red Hat
2️⃣ Gainsight
3️⃣ Box
4️⃣ MathWorks
5️⃣ ServiceNow
6️⃣ Marvell Technology
7️⃣ CrowdStrike
8️⃣ Fortinet
9️⃣ NetApp
🔟 Genentech
👉 Читать статью
При составлении рейтинга учитывали различные факторы из открытых данных портала Glassdoor, включая отзывы сотрудников, уровень лояльности действующих и бывших сотрудников, зарплата, льготы, бонусы и прочие бенефиты.
1️⃣ Red Hat
2️⃣ Gainsight
3️⃣ Box
4️⃣ MathWorks
5️⃣ ServiceNow
6️⃣ Marvell Technology
7️⃣ CrowdStrike
8️⃣ Fortinet
9️⃣ NetApp
🔟 Genentech
👉 Читать статью
🎉🥳🍾 Кстати, нас уже больше 20 000! Спасибо за интерес к «Библиотека C/C++ разработчика».
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Константные методы
В C++, ключевое слово
Когда вы вызываете константный метод для объекта класса, компилятор гарантирует, что внутри этого метода вы не будете изменять члены данных объекта, кроме членов, объявленных как
В C++, ключевое слово
const
имеет различное значение в зависимости от контекста. Оно может быть применено к методам классов для указания, что метод не будет изменять состояние объекта, на котором он вызывается. Такие методы называются «константными методами». Когда вы вызываете константный метод для объекта класса, компилятор гарантирует, что внутри этого метода вы не будете изменять члены данных объекта, кроме членов, объявленных как
mutable
(они могут изменяться внутри константных методов).🤔 Очередной #дайджест по С++
💠 Современный С++ в разработке девайсов — подход к разработке приложений на С++ для умных устройств с виртуальным ассистентом
💠 Подготовка инструментов под фаззинг UEFI на базе edk2 в Windows — об одном из способов с использованием программного эмулятора EDKII, чтобы проводить фаззинг без развертывания аппаратных стендов
💠 Книга «Разработка приложений на C++ с использованием Boost» — рассказывается о библиотеках Boost, которые помогают разрабатывать качественные, быстрые и портативные приложения
💠 Проектно-ориентированное обучение — список пошаговых туториалов: реализация аллокаторов, файловых систем, текстовых редакторов, баз данных с нуля
💠 Ranges Library в C++20 — уникальные дизайнерские решения для повышения производительности
💠 Современный С++ в разработке девайсов — подход к разработке приложений на С++ для умных устройств с виртуальным ассистентом
💠 Подготовка инструментов под фаззинг UEFI на базе edk2 в Windows — об одном из способов с использованием программного эмулятора EDKII, чтобы проводить фаззинг без развертывания аппаратных стендов
💠 Книга «Разработка приложений на C++ с использованием Boost» — рассказывается о библиотеках Boost, которые помогают разрабатывать качественные, быстрые и портативные приложения
💠 Проектно-ориентированное обучение — список пошаговых туториалов: реализация аллокаторов, файловых систем, текстовых редакторов, баз данных с нуля
💠 Ranges Library в C++20 — уникальные дизайнерские решения для повышения производительности
Какой ссылочный модификатор используется для определения ссылочной переменной?
Anonymous Quiz
4%
$
2%
#
87%
&
6%
Ничего из вышеперечисленного