cpp_lib | Unsorted

Telegram-канал cpp_lib - Библиотека C/C++ разработчика

2630

Полезные материалы по всему, что может быть полезно плюсовику/сишнику.

Subscribe to a channel

Библиотека C/C++ разработчика

Разгоняем C++ с кастомными аллокаторами

Сегодня мы обратим свой взор на производительность в C++, и как ни странно, нашими главными героями станут не библиотеки или сложные алгоритмы, а казалось бы, простые аллокаторы. Но не просто аллокаторы, а кастомные, которые могут заметно ускорить работу приложений.

Создание базового кастомного аллокатора
В основном кастомные аллокаторы реализуются через определение шаблона класса с методами allocate и deallocate, а также с функциями construct и destroy.

Пример простого аллокатора:


template<typename T>
class SimpleAllocator {
public:
using value_type = T;

SimpleAllocator() noexcept = default;
template<typename U> constexpr SimpleAllocator(const SimpleAllocator<U>&) noexcept {}

T* allocate(std::size_t n) {
if (n > std::numeric_limits<std::size_t>::max() / sizeof(T))
throw std::bad_alloc();
if (auto p = static_cast<T*>(std::malloc(n * sizeof(T)))) {
return p;
}
throw std::bad_alloc();
}

void deallocate(T* p, std::size_t) noexcept {
std::free(p);
}

template<typename U, typename... Args>
void construct(U* p, Args&&... args) {
new(p) U(std::forward<Args>(args)...);
}

template<typename U>
void destroy(U* p) noexcept {
p->~U();
}
};



https://habr.com/ru/companies/otus/articles/830104/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Что можно знать о C++ в 16 лет?

Сегодня мы собеседуем Богдана и проверяем его познания в C++
Проверим, насколько рано можно программировать.
Приятного просмотра!

источник

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Zork

Zork++ появился из необходимости создавать проекты на C++ с использованием модуля, введенного в стандарте C++20.

Существующие системы сборки имеют ограничения и сложности в использовании модулей C++20 на постоянной основе. Поэтому мы начали разрабатывать инструмент, который берет некоторые файлы C++, генерирует необходимые команды для компилятора и вызывает компилятор для создания требуемого исполняемого файла или библиотеки!

https://github.com/zerodaycode/Zork

#cpp #programming

👉 @cpp_lib

https://github.com/zerodaycode/Zork

Читать полностью…

Библиотека C/C++ разработчика

Хотите стать востребованным разработчиком на С++?
Пора понять процесс компиляции и научиться быстро решать проблемы при сборке программ

🗓 Ждем вас на открытом вебинаре 17 сентября в 20:00 мск, где мы разберем:

- из каких этапов состоит компиляция программы на С++;
- как анализировать результаты выполнения каждого этапа;
- какие проблемы могут возникнуть и как их решать.

Встречаемся в преддверии старта курса «Специализация C++ Developer».
Все участники вебинара получат специальную цену на обучение!

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cAHk08

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека C/C++ разработчика

Дорогая, я уменьшил {fmt}: уменьшил размер до 14kB и избавился от рантайма C++

Библиотека форматирования {fmt} известна своим небольшим влиянием на размер бинарников. Чаще всего её код в несколько раз меньше по сравнению с такими библиотеками, как IOStreams, Boost Format или, что иронично, tinyformat.

Давайте разберем, как можно уменьшить размер бинарников еще больше!

https://habr.com/ru/companies/beget/articles/842566/

original https://vitaut.net/posts/2024/binary-size/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Что значит инициализировать int в C++?

Недавно я получил по почте от Сэма Джонсона этот вопрос. Вот слегка отредактированное письмо Сэма:
«Возьмём для примера этот код в локальной области видимости функции:


int a;
a = 5;


Многие люди считают, что инициализация происходит в строке 1, потому что веб-сайты наподобие cppreference дают такое определение: "Инициализация переменной предоставляет его начальное значение на момент создания".

Однако я убеждён, что инициализация происходит в строке 2, потому что [в разных хороших книгах по C++] инициализация определяется как первое существенное значение, попадающее в переменную.

Можете ли вы сказать, какая строка считается инициализацией?»

https://herbsutter.com/2024/08/07/reader-qa-what-does-it-mean-to-initialize-an-int/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Подборка Telegram каналов для программистов

Системное администрирование 📌

/channel/devops_star DevOps Star (Звезда Девопса)
/channel/i_linux Системный администратор
/channel/linuxchmod Linux
/channel/sys_adminos Системный Администратор
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux

1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus

Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах

GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
/channel/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
/channel/game_devv Все о разработке игр

Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов

БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT
/channel/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика

Шутки программистов 📌
/channel/itumor Шутки программистов

Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров

Английский 📌
/channel/UchuEnglish Английский с нуля

Математика 📌
/channel/Pomatematike Канал по математике
/channel/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
/channel/Excel_lifehack

/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)

Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT

Читать полностью…

Библиотека C/C++ разработчика

Strlcpy, или как CPU противоречат здравому смыслу

Один из моих старых постов о strlcpy недавно вызвал обсуждения на различных форумах. Вероятно, с этим как-то связан выпуск новой версии POSIX. Многие авторы приводили один контраргумент, который я слышал и раньше:

В общем случае, когда исходная строка умещается в конечный буфер, strlcpy будет обходить строку только один раз, а strlen + memcpy будут обходить её дважды.

Под этим аргументом скрывается допущение о том, что однократный обход строки выполняется быстрее. И, честно говоря, это вполне разумное допущение. Но справедливо ли оно? Об этом мы и поговорим в статье.

https://habr.com/ru/articles/838116/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Оптимизируем до последней капли: cache-friendly код на C++

❓Хотите узнать, как «выжимать» последние проценты скорости в программе на C++?

⏰ Ждем вас на открытом вебинаре 4 сентября в 20:00 мск, где мы разберем:

- как реализовать доступ к оперативной памяти (ОП) в современных системах;
- «плохие» и «хорошие» паттерны доступа к ОП;
- как писать дружелюбный к кэшу код на C++.

Урок идеально подходит для разработчиков, которые заботятся о скорости выполнения кода и уже пишут или планируют перейти на C++.

🔥 Спикер Андрей Рыжиков — разработчик в НИИ обработки аэрокосмических изображений.

Встречаемся в преддверии старта курса «Специализация C++ Developer». Все участники вебинара получат специальную цену на обучение!

👉Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cAb7tO

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека C/C++ разработчика

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Foodtech tour Яндекса возвращается: стартуем с митапом в Москве 19 сентября!

В программе суровая энтерпрайз-разработка для опытных бэкендеров. Эксперты расскажут о работе с монолитами на примере Еды и переосмыслении процессинга заказов в Лавке. От Маркета заявлен воркшоп с архитектурными кейсами: без практики точно не останемся. 

Foodtech tour охватит 4 столицы: Москва — 19 сентября, Санкт-Петербург — 17 октября, Казань — 14 ноября и Минск — 5 декабря. 

👉🏻 Регистрируйтесь в своём городе!

Читать полностью…

Библиотека C/C++ разработчика

Знакомство с constexpr unique_ptr (С++23)

https://andreasfertig.blog/2023/10/using-cpp23s-constexpr-unique_ptr/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Рассказываем, как прошла C++ Zero Cost Conf - конференция по прикладному C++

На сцене выступили с докладами 14 спикеров из разных компаний, в том числе:

🔸 Антон Полухин, руководитель группы разработки общих компонент Яндекс Go. Поделился свежими новостями от Российской рабочей группы по стандартизации С++

🔸 Андрей Аксёнов, руководитель разработки инфраструктуры поиска Авито/Sphinx. Рассказал, как парсить гигабайты в секунду

🔸 Василий Куликов, ведущий разработчик в Яндексе. Рассмотрел основные проблемы реализации примитивов синхронизации во фреймворке userver

🔸 Константин Владимиров, руководитель отдела компиляторов и средств разработки в Syntacore. Рассказал об интересных C++-решениях в генераторе llvm-snippy

🔸 Вадим Белотицкий, руководитель разработки сервиса «Межгород» Яндекс Такси. Провёл квиз «Геогессинг». Зрители угадывали локации, в которых расположены сервисы Яндекса

Не обошлось без активностей за пределами основной сцены. Расставили большие доски с примерами неработающего кода, а участники пытались понять, где кроется ошибка и как её исправить. А ещё была целая зона настолок от инженеров Яндекса: на выбор «Гусиус», «IT-крокодил», «Угадай кто» и «IT’s Доббль».

📹 Все выступления спикеров собрали в плейлист. Посмотреть его можно [в VK Видео] или [на ютуб-канале].

Читать полностью…

Библиотека C/C++ разработчика

Не знаете, как эффективно управлять конфигурацией и обеспечивать консенсус данных? Ваши проекты сталкиваются с проблемами масштабируемости и надежности?

Тогда присоединяйтесь к открытому вебинару 21 августа в 20:00 мск, где мы:
1. Рассмотрим основы и архитектуру Apache Zookeeper: алгоритмы обеспечения консенсуса данных (Zookeeper Atomic Broadcast с Paxos)
2. Узнаем, как Zookeeper обеспечивает координацию и синхронизацию в распределенных системах
3. Разберём методы настройки и администрирования Zookeeper

👨‍💻🛠👨🏻‍💻 Урок будет полезен разработчикам, DevOps-инженерам, администраторам систем и сетей, архитекторам ПО и всем, кто хочет глубже понять работу Apache Zookeeper.

🔴 Запишитесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/czyvoi

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Библиотека C/C++ разработчика

Настоящее железо: открыта регистрация на митап о роботах Маркета!

В субботу, 7 сентября пройдёт Яндекс Robotics Day — ивент для backend, ML/CV-разработчиков и hardware-инженеров в Москве. 

Железный аргумент зарегистрироваться — митап пройдёт в центре робототехники Яндекса. В программе доклады и экскурсия с демонстрацией складских роботов, а ещё афтепати и нетворкинг с экспертами.

👉🏻 Подробная программа доступна на сайте. После регистрации дождитесь подтверждения заявки. До встречи!

Читать полностью…

Библиотека C/C++ разработчика

CodeChecker: анализируем большой проект на С++ быстро, эффективно и бесплатно

Привет, Меня зовут Давид, еще недавно я был стажером YADRO, а сейчас работаю в отделе разработки ПО поддержки сетевой аппаратной части. У нас в команде есть большой проект на более 100 000 строк, написан на C++ (и частично на С). Код переписывался много раз, а за самим проектом на правах легаси особо никто не следил: работает — не трогай. Когда я пришел в команду, у меня была задача: привести код в порядок и отловить ошибки, которые пропускает компилятор — например, возможное разыменование нулевого указателя, неинициализированные переменные или простые опечатки.

Одним из очевидных решений было использование статического анализатора. Выбрали довольно известное коммерческое решение, но долгие прогоны не привели ни к чему дельному. Решили поэкспериментировать с другими вариантами статических анализаторов, сделав ставку на open source. Поиски привели к инфраструктуре CodeCheсker, которая предоставляет удобный интерфейс запуска и настройки статических анализаторов через аргументы командной строки. С помощью инструмента удалось достичь результатов, которые значительно превысили значения, полученные на коммерческом решении.

Под катом расскажу, что же такое CodeCheсker, как с ним работать и почему его точно стоит попробовать на большом проекте.

https://habr.com/ru/companies/yadro/articles/838878/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Подборка Telegram каналов для программистов

Системное администрирование 📌

/channel/devops_star DevOps Star (Звезда Девопса)
/channel/i_linux Системный администратор
/channel/linuxchmod Linux
/channel/sys_adminos Системный Администратор
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux

1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus

Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах

GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
/channel/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
/channel/game_devv Все о разработке игр

Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов

БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT
/channel/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика

Шутки программистов 📌
/channel/itumor Шутки программистов

Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров

Английский 📌
/channel/UchuEnglish Английский с нуля

Математика 📌
/channel/Pomatematike Канал по математике
/channel/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
/channel/Excel_lifehack

/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)

Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT

Читать полностью…

Библиотека C/C++ разработчика

📕CMake Best Practices: Discover proven techniques for creating and maintaining programming projects with CMake
Автор: Dominik Berner (2022)

Вы не только познакомитесь с основами, но и разберете реальные примеры структурирования больших и сложных сопровождаемых проектов и создания сборок, работающих в любой среде программирования. Вы поймете, как интегрировать и автоматизировать различные инструменты для повышения общего качества программного обеспечения, такие как фреймворки тестирования, фаззеры и автоматическая генерация документации. А поскольку написание кода — это только половина работы, книга также поможет вам создать инсталляторы, упаковать и распространить ваше программное обеспечение. Все это адаптировано к современным рабочим процессам разработки, в которых активно используется инфраструктура CI/CD.

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

std::execution принят в C++26 — пора знакомиться

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

В конце июня стандартный комитет одобрил включение std::execution (P2300) в C++26. Это пропозал, который призван решить вышеуказанные проблемы. Давайте разбираться!

https://habr.com/ru/articles/842316/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Конструкторы, деструкторы, операторы — частые практики при программировании на C++

Данная статья служит шпаргалкой при написании классов с различными перегрузками операторов на примере тривиального класса строки (и ещё нескольких). Описанное здесь позволяет избежать копирования кода из одного конструктора или оператора в другой, что значительно снижает вероятность появления ошибок, но может привести к незначительному уменьшению производительности.

https://habr.com/ru/articles/838392/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

erid: LjN8K1ztG

Станьте разработчиком нейро-сотрудников на Python и зарабатывайте от 150.000р в месяц 🔥🔥🔥

Мы научим вас создавать топовых нейро-сотрудников на базе GPT-4 Omni, и вы сможете:
1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тысяч ₽ в месяц
2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тысяч ₽ за проект
3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате

Что будет на интенсиве?
🧬 Теория: как создаются нейро-сотрудники с GPT-4o на Python
🧬 Практика: мы создадим нейро-консультанта, нейро-HR, нейро-маркетолога и др.

Ведущий интенсива - Senior AI разработчик нейросетей и основатель Университета искусственного интеллекта

🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайший четверг!

Читать полностью…

Библиотека C/C++ разработчика

Как построить мост между JavaScript и C++ через WASM, или гайд для самых маленьких

Всем привет. Сегодня я хочу поговорить об использовании WASM с C++ и разберу, как взаимодействовать с этим всем делом через JavaScript.

Когда я начинал изучение технологии WASM, которая является довольно интересной и обсуждаемой темой в последние несколько лет. Почти сразу я столкнулся со значительным разрывом в уровнях туториалов (материалы либо очень простые и не имеют смысла, либо для совсем продвинутого уровня) и скудной документацией.

То есть, вхождение новичков может быть затруднено, и поэтому я решил создать гайд, который рассчитан на изучение темы с нуля и до среднего уровня.

В нём я постарался заполнить те информационные дыры, с которыми столкнулся сам во время изучения. Я собрал знания и хочу передать им вам, чтобы вы могли немного быстрее влиться в данную, не самую простую, тему.

В рамках данной статьи не будет подниматься тема производительности и некоторых лучших реализаций, от читателя требуется минимальное понимание JavaScript или TypeScript, и C++ кода.

https://habr.com/ru/articles/837692/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Работа с кодом на C++ в Swift

Меня зовут Иван Мясников, я CTO проекта «Виртуальный ассистент» в МТС Диджитал. Встраивание кода С++ в приложения для iOS — достаточно трудная задача. Еще сложнее собрать SDK для дальнейшей поставки в сторонние приложения, используя логику на С++ совместно со Swift. В этой статье я расскажу, как мы создавали такой SDK так, чтобы он встраивался в любое приложение без танцев с целевой архитектурой процессора.

Встраивание C++ в Swift позволяет использовать один код на разных платформах и ускорить некоторые задачи, где Swift не хватает быстродействия. У нас есть библиотека на C++ для работы с ML на Tensorflow Lite. И эту библиотеку мы хотели встроить на Android, iOS, Linux под различные платформы и архитектуры процессора без переписывания логики оттуда на Kotlin, Swift или что-нибудь еще. В этой статье я расскажу, как мы заставили код на C++ работать в iOS и какие тут есть тонкости и ограничения. Я ориентировался на читателей, у которых может не быть экспертизы в iOS или в C++, и старался не погружаться в глубокие дебри. Этот материал познакомит с решениями, к которым мы пришли экспериментально, подбирая подходящие варианты под нашу задачу.

https://habr.com/ru/companies/ru_mts/articles/838926/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

В крайности – Fold-выражения

Выражения сложения существуют в C++ начиная с C++17 и существенно влияют на то, как мы обращаемся с переменными шаблонами. Когда-то давно я писал о выражениях сложения в рамках серии о метапрограммировании, но сегодня мы рассмотрим крайние случаи использования выражений сложения.

Прежде чем мы начнем, сделаем важную оговорку: В этой статье примеры кода показывают использование вариативных шаблонов с аргументами, передаваемыми по значению, без их пересылки. Это сделано для того, чтобы упростить их и сосредоточиться на идее, лежащей в основе примеров.

https://cppsenioreas.wordpress.com/2023/05/22/into-the-extreme-fold-expressions/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

🔖Mastering 3D Game Engine Development with C++: Perfect for Beginners: All You Need is a Passion for Game Development and a Love for Coding!
Автор: Andrew M. Jones (2024)

Устали от предустановленных ограничений? Эта книга познакомит вас с возможностями C++, "выбором чемпиона" для программистов, для проектирования и создания самой основы игр вашей мечты - захватывающих трехмерных миров, захватывающих приключений и эпических сражений. Никакого предварительного опыта работы с движком не требуется! Просто привнесите в себя свою страсть к разработке игр и дух программирования.

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Game Engine

00.🕹️ Game Engine hardCORE серии. Promo
02.🕹️ Сборка C++ проектов. Препроцессинг.
03.🕹️ Сборка C++ проектов. Компиляция. Ассемблер. Теория.
04.🕹️ Сборка C++ проектов. Оптимизации компилятора. Inline, constexpr, alignment.
05.🕹️ Сборка C++ проектов. Linker. Forward declaration.
06.🕹️ Сборка C++ проектов. Static/dynamic libraries. PCH. Unity (JUMBO) build.

источник

#cpp #programming #ue5 #unrealengine

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

😁

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Простая в реализации arena-friendly hash map

https://nullprogram.com/blog/2023/09/30/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Дорожная карта навыков разработчика на C++

В этой статье мы с помощью карты покажем, какие навыки и знания нужны разработчику на C++. Естественно, разбирать путь развития «плюсистов» будем на собственном примере — тем более что у нас в «Лаборатории Касперского» много очень разных проектов с отличающимися задачами. Однако наша карта по большей части универсальна и будет полезна всем, кто хочет развиваться в разработке на C++.

https://habr.com/ru/specials/726724/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

«Range-based for»: что интересного лежит на поверхности

Новый синтаксис для циклов for в C++ появился уже давно - более десяти лет назад в стандарте C++11. Идея, скрывающаяся за этим синтаксисом, не является сколь-нибудь запутанной, и практически все, кто интересуются новыми свойствами языка, быстро разобрались с тем, как этим синтаксисом пользоваться и, что важнее, как создавать свои типы, совместимые с синтаксисом range-based for. Однако, как мне кажется, именно в вопросах взаимодействия с пользовательскими типами спецификация range-based for содержит несколько интересных деталей, лежащих практически на поверхности, которые остаются незамеченными просто потому, что идиоматические подходы прекрасно обходятся и без них. Возможно, кому-то будет интересно взглянуть на них повнимательнее.

https://habr.com/ru/articles/835130/

#cpp #programming

👉 @cpp_lib

Читать полностью…
Subscribe to a channel