cpp_lib | Unsorted

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

2630

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

Subscribe to a channel

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

Экскурсия по C++, A (серия с углубленным изучением C++)
Бьярне Страуструп (2023)

В "Экскурсии по C+", третьем издании, Бьярне Страуструп дает обзор стандарта ISO C++, C++20, цель которого - дать опытным программистам четкое представление о том, что представляет собой современный C++. Это пересмотренное и обновленное издание, содержащее тщательно проработанные примеры и практическую помощь в начале работы, кратко описывает большинство основных языковых возможностей и основные компоненты стандартной библиотеки, необходимые для эффективного использования.

Скачать книгу

👉 @cpp_knigi

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

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

C++ Templates: The Complete Guide
Автор: Douglas Gregor, Nicolai M. Josuttis, David Vandevoorde (2017)

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

Во время чтения книги вы:
✔️Поймете, как именно ведут себя шаблоны, и сможете избежать распространенных ошибок;
✔️Научитесь использовать шаблоны для написания более эффективного, гибкого и удобного в обслуживании программного обеспечения;
✔️Освоите самые эффективные современные идиомы и техники;
✔️Воспользуетесь утилитами для обобщенного программирования в стандартной библиотеке C++.

@cpp_knigi

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

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

Как сделать юнит-тестирование на C++ эффективнее?

Расскажем на бесплатном открытом уроке «Mocking в unit-тестировании с использованием GTest» от OTUS.

Рассмотрим способ unit-тестирования с помощью mock-объектов, когда интерфейс тестируемого кода не позволяет легко изолировать его от внешних зависимостей.

Вебинар будет полезен разработчикам программного обеспечения и QA-инженерам.

Занятие пройдёт 14 декабря в 20:00 мск в рамках курса «C++ Developer. Professional». После урока вы сможете продолжить обучение в рассрочку.

Для бесплатного участия и получения записи пройдите короткое тестирование прямо сейчас: https://vk.cc/csVfqu

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

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

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

Курс по ООП в С++: шаблоны и метапрограммирование

00:00 - Введение
02:12 - Внутреннее устройство шаблонов
03:55 - Явная специализация
06:25 - Частичная специализация
08:04 - Перегрузка и шаблоны
09:02 - Статический полиморфизм (CRTP)
12:40 - Шиблонный синглтон (CRTP)
17:57 - Основы метапрограммирования
22:17 - Заключение

источник

#cpp #programming

👉 @cpp_lib

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

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

C++ Software Design and Design Patterns

Command Pattern Explanation and Implementation in C++
Singleton Pattern | Explanation and Implementation in C++
Factory Method Pattern Explanation and Implementation in C++
Factory Method Pattern Adding More Power to Count Allocated Objects in C++
The Extensible Factory Pattern in C++ | Register Objects at Runtime
Iterator Pattern Explanation and usage with STL in C++

источник

#cpp #programming

👉 @cpp_lib

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

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

The Observer Design Pattern in C++

Part 1 of n - A simple implementation
Part 2 of n - Extensibility and Abstraction
Part 3 of n - Registration and Lifetime
Part 4 of n - Notify Specific System
Part 5 of 5 - Review and Next Steps

источник

#cpp #programming

👉 @cpp_lib

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

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

Сложность C++ - Что делает C++ сложным для вас?

Вопрос о том, является ли C++ сложным языком, конечно, субъективен, но мало кто будет спорить с этим утверждением.

Вопрос о том, что делает C++ сложным для вас, конечно, также субъективен, но это интересный вопрос с потенциальными последствиями. Мы можем сделать вывод:

Есть функции, которые нам нужно учить лучше.
Есть области, которые нуждаются в улучшении через процесс ISO
Есть области, которые могут выиграть от улучшения инструментов

https://www.incredibuild.com/blog/c-complexity-what-makes-c-complex-for-you

#cpp #programming

👉 @cpp_lib

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

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

erid: LjN8JtdeC

Статический анализатор PVS-Studio: на страже чистого кода 💪

Мы – небольшая команда программистов, заряженных на успех. Разрабатываем и продвигаем свой продукт – статический анализатор кода PVS-Studio. Любим писать статьи на Хабр, выступать на конференциях и рассказывать об этом в нашем Telegram-канале! 

Приглашаем тебя заглянуть в него. Там ты найдешь:

📚 актуальные статьи о С++ от наших разработчиков;
🧠 задачки от нашего анализатора на тренировку твоего код-ревью;
📢 инсайты с конференций С++ Russia, HighLoad++ и других;
🧐 погружение в терминологию и методологию статического анализа кода;
🐞 разбор ошибок в известных Open Source проектах;
🔢 квизы, мемы и интервью с экспертами.

Заглядывай в наш Telegram-канал! Обещаем, скучно не будет 😉

Реклама. ООО "ПВС". ИНН 7105502635.

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

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

О дебаггинге в С/С++.

https://pspdfkit.com/blog/2021/time-travel-debugging-for-c/

#cpp #programming

👉 @cpp_lib

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

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

⚙️ Курс «Реверсивный инжиниринг ПО под ОС Windows»

Старт: 4 декабря
Длительность: 6,5 месяцев

🎓 В курсе подробно рассматриваются команды языка Ассемблера, детальный анализ приложений различного уровня сложности, от специальных задач типа crackme до рабочих приложений. Также изучаются образцы вредоносных приложений и различные техники, используемые исследователями.

ℹ️ Кому будет полезен курс:

✔️ Пентестерам, желающим лучше изучить направление реверсинга приложений
✔️ Вирусным аналитикам и исследователям кода занимающимся изучением вредоносного ПО
✔️ Разработчикам ПО с повышенными требованиям к защищенности

Выдаём удостоверение о повышении квалификации при успешной сдаче экзамена. Возможна оплата в рассрочку

🎁 По промокоду CODEBY вы получите скидку 10%! 

📌 Узнать подробнее о курсе

Реклама. ООО "АКАДЕМИЯ КОДЕБАЙ". ИНН 9706020333.

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

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

❓Что нужно знать новичкам в С++, чтобы выделяться среди конкурентов?

✅Расскажем на бесплатном открытом уроке «Как в С++ сделать указатель умным и зачем» от OTUS и Карины Дорожкиной – ведущего разработчика С++ с более, чем 10-летним опытом.

🔥На вебинаре:
- поговорим об опасности сырых указателей и зачем им интеллектуальность;
- обсудим идиому RAII и познакомимся с одним из умных указателей std::unique_ptr;
- разберём сложности работы с динамической памятью в C++ и другое.

📆 Занятие пройдёт 7 декабря в 20:00 мск в рамках курса «Специализация C++ Developer». После урока вы сможете продолжить обучение на специальных условиях.

👉Для бесплатного участия регистрируйтесь сейчас: https://vk.cc/csIWTD

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

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

C++ Reference Card
C/C++ cheatsheet Documentation

#cpp #programming

👉 @cpp_lib

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

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

Шпаргалка по аббревиатурам C++ и не только. Часть 1: C++

Когда-то я собеседовался на должность C++ разработчика в одну приличную и даже известную контору. Опыт у меня тогда уже кое-какой был, я даже назывался ведущим разработчиком у тогдашнего своего работодателя. Но на вопросы о том, знаком ли я такими вещами, как DRY, KISS, YAGNI, NIH, раз за разом мне приходилось отвечать «Нет».

Собеседование я с треском провалил, конечно. Но упомянутые аббревиатуры потом загуглил и запомнил. По мере чтения тематических статей и книг, подготовок к собеседованиям и просто общения с коллегами я узнавал больше новых вещей, забывал их, снова гуглил и разбирался. Пару месяцев назад кто-то из коллег небрежно упомянул в рабочем чате IIFE в контексте C++. Я, как тот дед в анекдоте, чуть с печки не свалился и опять полез в гугл.

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

👉 @cpp_knigi

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

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

Отчет о поездке: Осенняя встреча по стандартам ISO C++ (Кона, HI, США)

На днях комитет ISO C++ завершил свое второе собрание C++26, состоявшееся в Коне, штат Гавайи, США.

Наши организаторы, Standard C++ Foundation и WorldQuant, организовали высококачественные условия для нашей шестидневной встречи с понедельника по субботу. У нас было более 170 участников, около двух третей лично, а остальные удаленно через Zoom, формально представляющие 21 страну. Кроме того, на каждой встрече у нас регулярно появляются новые участники, которые никогда раньше не присутствовали, и на этот раз было более дюжины новых посетителей, в основном лично; всем им еще раз добро пожаловать!

https://herbsutter.com/2023/11/11/trip-report-autumn-iso-c-standards-meeting-kona-hi-usa/

#cpp #programming

👉 @cpp_lib

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

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

Как читать язык ассемблера

Зачем кому-то нужно изучать язык ассемблера? Во-первых, чтение языка ассемблера - это способ узнать, что именно делает ваша программа. Почему именно эта программа на Си++ занимает 1 Мб (скажем), а не 100 Кб? Можно ли выжать еще немного производительности из той функции, которая постоянно вызывается?

В частности, для языка Си++ легко забыть или просто не заметить какую-либо операцию (например, неявное преобразование или вызов конструктора или деструктора копирования), которая подразумевается исходным кодом и семантикой языка, но не прописана в явном виде. Если посмотреть на ассемблер, сгенерированный компилятором, то все будет на виду.

https://wolchok.org/posts/how-to-read-assembly-language/

#cpp #programming

👉 @cpp_lib

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

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

❓Что нужно знать новичкам в С++, чтобы выделяться среди конкурентов?

✅Расскажем на бесплатном открытом уроке «Как в С++ сделать указатель умным и зачем» от OTUS и Карины Дорожкиной – ведущего разработчика С++ с более, чем 10-летним опытом.

🔥На вебинаре:
- поговорим об опасности сырых указателей и зачем им интеллектуальность;
- обсудим идиому RAII и познакомимся с одним из умных указателей std::unique_ptr;
- разберём сложности работы с динамической памятью в C++ и другое.

📆 Занятие пройдёт 7 декабря в 20:00 мск в рамках курса «Специализация C++ Developer». После урока вы сможете продолжить обучение на специальных условиях.

👉Для бесплатного участия регистрируйтесь сейчас: https://vk.cc/csYtIH

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

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

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

Структурированная диагностика в новом окне сведений о проблеме

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

https://devblogs.microsoft.com/cppblog/structured-diagnostics-in-the-new-problem-details-window/

#cpp #programming

👉 @cpp_lib

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

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

Пол Дрейк: Использование шаблонов переменных для решения крошечной проблемы

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

https://www.youtube.com/watch?v=LTzpqF6wAzc

#cpp #programming

👉 @cpp_lib

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

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

❓Что нужно знать новичкам в С++, чтобы выделяться среди конкурентов?

✅Расскажем на бесплатном открытом уроке «Как в С++ сделать указатель умным и зачем» от OTUS и Карины Дорожкиной – ведущего разработчика С++ с более, чем 10-летним опытом.

🔥На вебинаре:
- поговорим об опасности сырых указателей и зачем им интеллектуальность;
- обсудим идиому RAII и познакомимся с одним из умных указателей std::unique_ptr;
- разберём сложности работы с динамической памятью в C++ и другое.

📆 Занятие пройдёт 7 декабря в 20:00 мск в рамках курса «Специализация C++ Developer». После урока вы сможете продолжить обучение на специальных условиях.

👉Для бесплатного участия регистрируйтесь сейчас: https://vk.cc/csT7jW

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

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

Кроссплатформенный многопоточный TCP/IP сервер на C++

Решил задаться целью написать простой в использовании и при этом быстрый многопоточного TCP/IP сервера на C++ и при этом кроссплатформенный — как минимум чтобы работал на платформах Windows и Linux без требования как-либо изменять код за пределами самописной библиотеки. Ранее, на чистом C++ без библиотек вроде Qt, сетевым программировнием не занимался, и предвещал себе долгое время мучений с платформо-зависимостью. Но как оказалось всё гораздо проще чем казалось на первый взгляд, ведь в основном интерфейсы сокетов обоих систем похожи как две капли воды и различаются лишь в мелких деталях.

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

#cpp #programming

👉 @cpp_lib

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

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

❓Что нужно знать новичкам в С++, чтобы выделяться среди конкурентов?

✅Расскажем на бесплатном открытом уроке «Как в С++ сделать указатель умным и зачем» от OTUS и Карины Дорожкиной – ведущего разработчика С++ с более, чем 10-летним опытом.

🔥На вебинаре:
- поговорим об опасности сырых указателей и зачем им интеллектуальность;
- обсудим идиому RAII и познакомимся с одним из умных указателей std::unique_ptr;
- разберём сложности работы с динамической памятью в C++ и другое.

📆 Занятие пройдёт 7 декабря в 20:00 мск в рамках курса «Специализация C++ Developer». После урока вы сможете продолжить обучение на специальных условиях.

👉Для бесплатного участия регистрируйтесь сейчас: https://vk.cc/csNYPS

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

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

Инженерный калькулятор на C++. Часть 2: Алгоритм сортировочной станции

Всем маткульт-привет! В этой статье мы продолжаем и заканчиваем написание консольного инженерного калькулятора. Для понимания происходящего настоятельно рекомендую сначала ознакомиться с первой частью.

Введение
В прошлой части мы научились разбивать исходное математическое выражение формата (log2(18)/3.14)*sqrt(0.11^(-3)/0.02)на токены. На выходе мы получаем массив токенов, каждый их которых содержит информацию о типе (оператор, скобка, число, ...) и об ассоциативности, если он таковую имеет.

Теперь мы хотим привести выражение к виду обратной польской записи (RPN), чтобы затем удобно его посчитать. Это нам позволяет сделать изобретенный Эдсгером Дейкстрой алгоритм сортировочной станции.

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

#cpp #programming

👉 @cpp_lib

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

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

Создание HTTP-запросов на C++

В этой статье я покажу вам, как создавать HTTP-запросы к REST-серверу с помощью библиотеки C++ Request, написанной Ху Нгуеном. При её написании мистер Нгуен во многом ориентировался на принципы проектирования из Python Requests, поэтому для тех, кто использовал или знаком с Python Requests, C++ Requests окажется вполне понятна.

https://www.codeproject.com/Articles/1244632/Making-HTTP-REST-Request-in-Cplusplus

#cpp #programming

👉 @cpp_lib

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

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

🔥В OTUS стартует онлайн-курс Embedded Developer. Идет набор в группу.

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

⚡5 декабря в 20.00 (мск) приглашаем на вебинар “Кто такой embedded developer?”, на котором мы ближе познакомимся с этой интересной и востребованной профессией и узнаем:

- кто такой embedded разработчик:
- что такое встраиваемые системы и где они применяются:
- особенности профессии:
- какими навыками и компетенциями должен обладать специалист.

👉Регистрация для участия https://otus.pw/dWmn/

После урока вы сможете продолжить обучение по специальной цене, а также приобрести курс с рассрочкой платежа.

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8Jzm6z

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

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

Shared, TO, PLOT: друзья или враги

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

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

https://lucisqr.substack.com/p/shared-lto-plt-friends-or-foes

#cpp #programming

👉 @cpp_lib

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

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

Хардварный проброс

Оказывается пробрасывать можно не только сетевые порты, а еще и регистры периферии микроконтроллера(МК). Идея та же самая - открыть периферию для использования вне микроконтроллера. Для наглядности давайте сравним более детально.

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

#cpp #programming

👉 @cpp_lib

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

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

👉 Пройдите тест на знание основ алгоритмом и оцените свой уровень. Тест подходит для любого языка программирования.

💪 Сможете сдать – получите запись мастер-класса по алгоритмам повышающий ваш уровень.

📌 Еще больше полезных знаний ждет вас на онлайн-курсе «Алгоритмы и структуры данных» в OTUS

🎁 Черная пятница в OTUS! Успейте получить скидку на курс!
Возможна оплата в рассрочку!

👉 Пройти тест: https://vk.cc/csEvUo

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

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

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

erid: LjN8KQsfi

👋Уважаемая публика, не проходите мимо! Только у нас на вебинаре вы узнаете то, чего ещё никогда не знали!

🔥Проникнитесь невероятными лайфхаками в жанре team lead survival на бесплатном уроке «Agile Circus: как выжить в цирке гибкой разработки ПО»: регистрация
 
На занятии обсудим:
— зачем вообще нужны гибкие подходы к организации процессов разработки (и поддержки) ПО и можно ли обойтись без них.
— как правильно выбирать способ организации разработки программного обеспечения.
— что делать в ситуации, когда одна команда не справляется.

Вебинар будет полезен тимлидам, руководителям разработки, проектным и продуктовым менеджерам, которые недовольны текущими процессами в своей компании.

👉Понравился урок — берите полный курс «Team Lead разработки», его можно пройти по скидке Чёрной пятницы, и даже в рассрочку.

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

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

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

Как улучшить эффективность создания асинхронных приложений?

Расскажем на бесплатном открытом уроке «Корутины в С++: Асинхронность без классических потоков» от OTUS.

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

Эфир будет очень полезен разработчикам на С++ любого уровня.

Занятие пройдёт 30 ноября в 20:00 мск и будет приурочено к старту курса «C++ Developer. Professional». После урока вы сможете продолжить обучение в рассрочку.

Регистрируйтесь бесплатно прямо сейчас и ставьте событие в календарь, чтобы ничего не пропустить: https://vk.cc/csGbWa

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

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

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

Extern templates to reduce binary size

Статья об использовании extern template для сокращения размеров бинарных файлов.

template <typename T>
class Wrapper {
public:
// ...
private:
T wrapped;
};

// No object code will be generated for Wrapper<int> in this translation unit
extern template class Wrapper<int>;


https://www.sandordargo.com/blog/2023/11/08/extern-templates

#cpp #programming

👉 @cpp_lib

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