Библиотека 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
加入频道
Перегрузка операторов

Перегрузка операторов позволяет определить для объектов классов встроенные операторы, такие как +, -, * и т. д. Для определения оператора для объектов своего класса, необходимо определить функцию, название которой содержит слово operator и символ перегружаемого оператора.

В этом примере в классе Counter определен оператор сложения, цель которого сложить два объекта Counter. Текущий объект будет представлять левый операнд операции. Объект, который передается в функцию через параметр counter, будет представлять правый операнд операции.
#код
Исследование различий между C++ и C: почему C++ преобладает

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

Читать статью
Libcurl

Libcurl — это библиотека для передачи файлов с множественным протоколом, которая поддерживает огромное множество протоколов. Также Libcurl поддерживает сертификаты SSL, HTTP POST, HTTP PUT, загрузку FTP, загрузку на основе форм HTTP и многое другое.

В этом примере создается объект CURL, затем вызывается curl_easy_init для его инициализации. Затем устанавливаются опции CURLOPT_URL и CURLOPT_WRITEFUNCTION с помощью curl_easy_setopt.
— CURLOPT_URL указывает URL-адрес для выполнения GET запроса.
— CURLOPT_WRITEFUNCTION указывает функцию обратного вызова для записи данных ответа.

Затем вызывается curl_easy_perform для выполнения запроса. После завершения запроса вызывается curl_easy_cleanup для очистки объекта CURL, а затем curl_global_cleanup для очистки глобальных ресурсов libcurl.

Результат выполнения этого кода — вывод содержимого страницы в стандартный вывод.
#код
Очередной #дайджест по С++:

✍️ Создаем проект STM32 C++ FreeRTOS в vscode для очень маленьких
Пошаговое создание проекта для новичков.

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

✍️ HOMEd: A почему «d»? Чтобы никто не догадался
Про умный дом и его возможности.

✍️ Написание компилятора C в 500 строк Python
Сложно ли это? Да, даже если отказаться от многих функций. Но, в то же время, это ужасно интересно, а результат оказался на удивление функциональным и несложным для понимания!
Какой фреймворк для работы изучали последний раз?
#интерактив
Сериализация

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

Сериализация имеет большое значение, например, когда вы хотите сохранить состояние вашего приложения для долгосрочного хранения или передать данные между клиентом и сервером в распределенной системе. Она позволяет избежать необходимости ручного форматирования данных для записи и их последующего разбора.
#код
Как подсчитать количество элементов в std::list?

Чтобы подсчитать количество элементов в std::list, можно использовать следующие способы:

1. Вызвать метод size() самого списка. Он вернет количество элементов.
2. Проитерировать список циклом и считать элементы.
3. Воспользоваться алгоритмом std::distance, передав ему начало и конец списка.
4. Применить алгоритм std::count_if с условием, которое всегда истинно.
#вопросы_с_собеседований
⚒️ ТОП-27 плагинов для Visual Studio Code в 2023

Предлагаем список лучших расширений для VS Code в 2023 году: продуктивность, окрашивание сниппетов, контроль версий, форматирование, линтинг и отладка.

🔗Читать статью
🔗Зеркало
Карл Окерблом: краткий обзор Трейси Профайлер

Карл кратко рассказывает о профилировании инструментов Tracy Profiler. Также он делится впечатлениями после внедрения его в работу; несколько приятных сюрпризов и неровностей на дороге, с которыми он столкнулся на своем пути.

Смотреть выступление
Что вы считаете самой большой своей неудачей за всю карьеру?
#интерактив
Начать курс «Алгоритмы и структуры данных» с вводной части можно уже сегодня бесплатно

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

НАЧАТЬ С ДЕМО-ДОСТУПА

▪️ бессрочный доступ

▪️ 47 видеолекций

▪️ 150 практических заданий

▪️ бессрочная поддержка в чате студентов

▪️развернутая обратная связь по всем домашним заданиям

🔹Подробная программа – https://proglib.io/w/b26c360b

Переходите, оставляйте заявку на пробную версию и знакомьтесь с самым харизматичным спикером – Степаном Мацкевичем. Он определенно получил приз зрительских симпатий от наших студентов🥰
Кортеж — tuple

Как и pair, tuple — коллекция значений различных типов данных конкретного размера.

В некоторых случаях вместо tuple удобнее использовать std::array. Это обычный массив с некоторыми функциями стандартной библиотеки C++, который был добавлен в C++11.
#код
Очередной #дайджест по C++:

✍️ Форматирование текста на C++ старым и новым способом
Какой из способов форматирования лучше в плане производительности?

✍️ Когда private, но очень хочется public
Если нельзя, но очень хочется, то можно.

✍️ Промышленные контроллеры, Linux и только C++. Часть 1
Об автоматизации производства.

✍️ Визуализация алгоритмов стандартной библиотеки C++
Автору пришла идея отделить визуализацию алгоритма от его исполнения, тогда можно будет визуализировать любой алгоритм.

✍️ Основы C++: Указатели и Итераторы
Статья о базовых понятиях языка.
template

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

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

Несмотря на то, что template используется для объявления шаблонных классов и функций, он может также применяться для реализации SFINAE.
Это означает, что при использовании шаблонов и при неудачной попытке их инстанцирования компилятор не сгенерирует ошибку, а будет искать альтернативные варианты. Использование этой концепции позволяет более гибко управлять перегрузками функций и классов, что может быть особенно полезно при написании библиотек или фреймворков.
#код
Инструменты и библиотеки для создания собственного игрового движка на C++

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

Читать статью
const и volatile указатели

Const и volatile указатели используются для дополнительного контроля над данными, на которые они указывают.

— Const указатель гарантирует, что данные по этому указателю изменять нельзя.
— Volatile указатель сообщает компилятору, что значение данных может измениться в любой момент вне контроля программы.
#код
Что такое деструктор?

Деструктор — это экземпляр функции-члена, который вызывается автоматически, если какой-либо объект собирается быть уничтоженным. Используется в основном для освобождения памяти.

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

Они могут быть объявлены как виртуальные или чисто виртуальные, но не как константные, изменчивые, константные изменчивые или статические.
#вопросы_с_собеседований
🔎💼🗺️ Как программисту искать (и найти) работу за границей в 2023 году

Разбираемся: где искать работу за рубежом, как и где откликаться на вакансии, плюс несколько лайфхаков по составлению резюме.

Читать статью

#поискработы
string.back

Эта функция возвращает ссылку на последний символ строки.
Она позволяет получить доступ к последнему символу строки и при необходимости изменить его.

Возвращаемое значение имеет тип символа строки, обычно char или wchar_t. Если строка пустая, то поведение функции неопределенно, поэтому нужно проверять, что строка не пуста, прежде чем вызывать back().

string.back часто используется в циклах для обработки символов строки с конца или для проверки последнего символа.
#код
Pcap

Pcap — это библиотека для захвата и анализа сетевого трафика.

Она используется для:
— Сниффинга сети;
— Анализа протоколов;
— Отладки сетевых приложений.

Код из примера открывает устройство для захвата пакетов, в цикле считывает пакеты и выводит их длину.
#код