Библиотека C/C++ разработчика | cpp, boost, qt
21K subscribers
1.57K photos
40 videos
16 files
3.74K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Наши каналы: https://yangx.top/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
⚙️ Обучение программированию на примерах реализации приложений

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

👉 Ссылка (Github)
🧙‍♂️ С++ магистерский курс, МФТИ

Хороший курс для начинающих или тех кто хочет структурировать знания по C++

1. Строки
2. Шаблоны функций
3. Шаблоны классов и частичная специализация
4. Разрешение имён в шаблонах и One Definition Rule
5. Модули в C++
6. SFINAE
7. Классическое метапрограммирование
8. Константные выражения
9. Волшебство времени компиляции
10. Концепты

👉 Ссылка (Youtube)
🪬 Алгоритмы копирования

std::copy и std::copy_if — функция из стандартной библиотеки. Помогают копировать элементы стандартных структур данных. Основное преимущество — это лучшая читаемость

std::copy — можно использовать с различными видами std::inserter'ов (по сути это просто итератор), которые позволяют по разному вставлять элементы, например std::back_inserter (для вставки элементов в конец)

std::copy_if аналогичен std::copy, за исключением того, что можно использовать предикат для фильтрации элементов
Недавно проводился опрос об интересных тематиках для канала. Тут собрал краткий ответ

Подходящие темы

• ООП
• STL (в том числе и корутины)
• Сети
• Инфраструктура

Неподходящие темы

• Обработка изображений
• Компьютерное зрение
• Базы данных
• Поисковые движки

Основные причины почему не подходят, то что это темы для отдельных каналов или плохо коррелируют с основной тематикой

Если есть вопросы и предложения, можем обсудить в комментариях 😁
Регулярные выражении (Regular Expressions)

Регулярные выражения в C++ представлены в стандартной библиотеке с помощью класса std::regex. С помощью регулярных выражений удобно осуществлять поиск и замену подстрок при работе с текстовыми данными

Ссылочки

Регулярные выражения (урок 1) regex_match (Youtube)
Регулярные выражения (урок 2) regex_search (Youtube)
Введение в регулярные выражения в современном C++
Regular expressions library
🧑‍💻 Вопросы с собеседования

Неплохой список вопросов об C++ с развёрнутыми ответами на них

👉 Ссылка
🔮 Perfect Forwarding

Perfect Forwarding или Идеальная передача — необходима для реализации перемещения. Основная задача именно передать само значение (а не ссылку или указатель на него). В отличие от std::move не превращает lvalue в rvalue

Ссылочки

Идеальная передача и универсальные ссылки в C++
Move semantics && perfect forwarding (Youtube)
Функция std::forward
Может кто-нибудь напишет почему это работает?!😏😁

#memes
Вперед в прошлое, или Разрабатываем фреймворк под Windows 95 в 2023 году

Автор рассказывает про свой опыт разработки и портирования своего игрового фреймворка под старые платформы

👉Ссылка (Youtube)

#gamedev
⚙️ Modern-CPP-Programming

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

👉Ссылочка (Github)
А какую IDE ты используешь?
🔍 Что такое empty base optimization?

В C++ любой класс, даже пустой, будет размером не меньше одного байта. Это необходимо, чтобы не было проблем с арифметикой указателей. Однако наследование от пустого класса будет приводить увеличению размера наследника. Но, в C++ предусмотрена empty base optimization, которая позволяет компилятору оптимизировать занимаемую память, так что объект, наследующий пустой базовый класс, не будет занимать дополнительной памяти за счет этого пустого базового класса. Таким образом, размер объекта будет таким же, как если бы он не наследовал пустой класс
🔮 Сетевое программирование в C++

Для C++ пока, к сожалению, не написали стандартную библиотеку для работы с сетью. Но, зато есть множество хороших библиотек (Boost.Asio, Qt Network и др.). Так же стоит понимать, что многие компании пишут свои библиотеки и поэтому стоит лучше познакомиться с основами сетевого программирования, чтобы легко вникать в любую из реализаций

Что касается Boost.Asio, то для него есть перевод книги Boost.Asio C++ Network Programming

🔗 Ссылочки со спискоми библиотек
Awesome C++
C++ Networking libraries
Stackoverflow (старый пост)
🐱🎨🙏🤖 10 самых странных языков программирования, о которых вы никогда не слышали

Эзотерические языки разрабатывают в концептуальных, экспериментальных и развлекательных целях. Их общая черта — максимально запутанный и странный синтаксис, понятный только посвященным. В этой подборке — языки, которые выбрали бы Ходор, доктор Лектер, Малевич, Джеймс Бонд, Терминатор и Луи Армстронг, если бы решили войти в айти.

👉 Читать статью
👉 Зеркало
🔮 Историческая справка по lambda'м

Вышла обзорная статья по развитию lambda-выражений для разных стандартов языка

👉 Краткий обзор развития лямбда-выражений в C++11, C++14, C++17 и C++20

#junior