Библиотека 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
加入频道
Какой инструмент статического анализа кода лучше в C: Klocwork или Coverity?
У каждой системы есть свои плюсы и минусы. Спрашивая, что лучше Windows или Linux, к примеру, мнения явно разойдутся. Поскольку каждый современный коммерческий анализатор кода является достаточно эффективным с точки зрения обнаружения ошибок, скорее всего вы сделаете выбор, основываясь на удобстве этого инструмента для вашей команды.
Коротко о stb

stb — это однофайловые общедоступные (или лицензированные MIT) библиотеки для C / C ++.

Включают:
- загрузчик изображений (JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC);
- средство записи изображений (PNG, TGA, BMP);
- изменение размера картинки;
- растеризатор текста шрифта;
- типизированные контейнеры.

Пример использования:
Как читать и записывать изображения с помощью библиотек stb_image, — пример, состоящий из двух частей: основного использования stb_image и написания оболочки вокруг функций stb_image.
Хорошие инструменты для покрытия кода на С++
Coco — это многоязычный инструмент для покрытия кода. Автоматический инструментарий исходного кода используется для измерения охвата тестов операторов, ветвей и условий.

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

Parasoft CPP test — хороший инструмент для различного анализа, включая покрытие кода и статический анализ.
Что выведет этот код?

#include <iostream> int main(int argc, char **argv) { std::cout << 25u - 50; return 0; }
Anonymous Poll
17%
-25
8%
25
76%
4294967271
Ответ: 4294967271, предполагая 32-битные целые числа.
Почему так происходит?
Существует иерархия: long double, double, float, unsigned long int, long int, unsigned int, int. И когда два операнда определены как 25u (unsigned int) и 50 (int), 50 также будет интерпретироваться как беззнаковое целое число, то есть 50u.
Кроме того, результат операции также будет иметь тип операндов. Следовательно, результат 25u - 50u и сам является беззнаковым целым числом. Таким образом, результат -25 преобразуется в 4294967271.
Ответ:
Каверзный вопрос с IT-собеседований, который чаще всего задают именно после виртуальных деструкторов, дабы сбить кандидата с толку. Конструктор не может быть виртуальным, поскольку в нем нет никакого смысла: при создании объектов нет такой неоднозначности, как при их удалении.
C++17 STL Cookbook (2017)
Автор: Jacek Galowicz

#cpp #book #en

Язык: English.

Целевая аудитория: разработчики C++.

C ++ прошел большой путь. Быстрый, эффективный и гибкий, он используется для решения многих проблем. Если вы хотите понять практическую полезность C++ 17 STL для написания более умного, полностью переносимого кода, то эта книга для вас.

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

Преимущества:
хорошее обсуждение текущего состояния стандартной библиотеки;
отличные примеры;
структурировано и понятно.

Недостатки:
не обнаружено.
Уроки по разработке 64-битных приложений на C / C++
Разработка 64-битных приложений на C и C++. Этот курс был разработан в 2010 году. Однако он не устарел, и приведенная в нем информация достаточно актуальна для современных версий Visual Studio.

Курс посвящен созданию 64-битных приложений на языке C / C++ и предназначен для разработчиков Windows, использующих среду Visual Studio 2005/2008/2010. Разработчики, работающие с другими 64-битными операционными системами, также могут найти для себя много интересного. В курсе рассмотрены все этапы создания безопасного 64-разрядного приложения или перенос существующего 32-разрядного кода в 64-разрядную систему.
«Chaos Game» — реализация в C++

«Chaos Game» — математическая игра для одного игрока. Как это типично для подобных математических вещей, на самом деле это не игра. В математике этот термин первоначально относился к методу создания фрактала с использованием многоугольника и произвольно выбранной начальной точки внутри него. В этой статье показана реализация в C++ классической «Chaos Game».

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

Использование правильного треугольника и множителя 1/2 приведет к треугольнику Серпинского, а создание правильного расположения с четырьмя точками и множителю 1/2 создаст отображение «Тетраэдра Серпинского», трехмерного аналога Серпинского. Поскольку число точек увеличивается до числа N, расположение образует соответствующий (N-1)-мерный симплекс Серпинского.
Бьерн Страуструп огорчен тем, что C++ используется для майнинга биткоинов
В интервью одного из подкастов создатель C++ Бьярн Страуструп высказался против того, что Биткойн был написан на его языке программирования вообще. По его словам, есть вещи, которые пытаешься предотвратить, но на самом деле контролировать невозможно.
«Поэтому я очень счастлив и горд относительно некоторых вещей, для которых используется C++, а другие вещи я бы хотел, чтобы люди не делали. Майнинг биткоина мой любимый пример, он потребляет так много энергии в Швейцарии, и по большей части служит преступникам», — отметил создатель C++.
Лучшие инструменты и советы начинающему C++ программисту
Хотите изучать C++? Делимся важными навыками, фреймворками и советами, которые помогут начинающему C++ программисту устроиться на работу.

😉👇
https://proglib.io/p/cpp-dev-skills
Изучение многопоточности в C++
Стремление к производительности — то, с чем MICHAEL ADAIXO экспериментирует и консолидирует свои знания о многопоточности в своем блоге. В настоящее время эта тема становится более важной, поскольку процессоры получают все больше и больше ядер. Современные игровые движки и приложения используют несколько процессорных ядер, чтобы оставаться быстрыми и отзывчивыми.

Серия статей на эту тему:
Часть 1: Изучение многопоточности в C++;
Часть 2: Изучение многопоточности в C++;
Часть 3: Изучение многопоточности в C++: загрузка текстур;
Часть 4: Изучение многопоточности в C++: распараллеливание трассировки лучей.
5 способов использования скобок могут сделать ваш код C++ более выразительным

Многие языки используют фигурные скобки для структурирования кода. Но в C++ фигурные скобки — гораздо больше, чем просто инструмент для удержания блоков кода вместе. В C++ фигурные скобки имеют значение. Точнее, фигурные скобки имеют несколько значений. В блоге Джонатана Боккары можно найти 5 простых способов сделать их более выразительными.
Как C++ 17 извлекает выгоду из библиотек Boostинтересная информация от блогера Bartlomiej Filipek, который показывает проверенные в бою функции из известных библиотек Boost, которые были адаптированы для C++ 17. С ростом числа элементов в стандартной библиотеке, поддерживаемых опытом Boost, вы можете писать еще более свободный код на C++.
Что посмотреть «продолжающему» С++ разработчику?
Семь источников для разработчиков с опытом.

1. Видеокурс «Углубленное программирование на С/C++».
Этот курс нацелен на то, чтобы сформировать в вас практические навыки и умения, которые позволят разрабатывать ПО для UNIX-подобных ОС в проектах средней сложности на языках С и С++.

https://www.youtube.com/playlist?list=PLrCZzMib1e9rOysx0hgCaedIoOWNVjhQ0

2. Углублённый C++.
Курс углубленного С++, погрузит вас в тонкости языка. Вы узнаете о концепте const, о функциях, созданных компилятором. Также курс расскажет о статическом полиморфизме, множественном наследовании и прочих понятиях, которые помогут вам расширить знания С++.

https://www.youtube.com/playlist?list=PLGvfHSgImk4bLOOiQ3HmF_TSnltz17lA2

3. Погружение в C++11.
Этот курс расскажет и покажет вам новые функции С++11 и С++14. Обучение будет происходить на фоне разработки игры, так что вы сможете совместить приятное с полезным. Кроме новых возможностей С++ вы узнаете о динамической памяти, указателях, продолжительности жизни переменных, контроле памяти и прочих тонкостях, которые позволят вам еще лучше кодить.

https://www.youtube.com/playlist?list=PLTEcWGdSiQenl4YRPvSqW7UPC6SiGNN7e

4. Курс «C++ Threading».
Курс о многопоточности познакомит вас со всеми понятиями этого свойства платформы/приложения. Вы узнаете о том, как устроены потоки, как ими управлять и как они взаимодействуют.

https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M

5. Серия лекций по C++, в рамках которых затронуты некоторые продвинутые темы.
Из этого курса лекций вы узнаете о стандартной библиотеке шаблонов, продвинутых возможностях С++, метапрограммировании, а также стандартах С++ 11 и С++14.

https://www.youtube.com/playlist?list=PLlb7e2G7aSpQJpe8sWD2kIQ51Lx74H2FH

6. Курс «Библиотека STL C++. Продвинутый уровень».
Для того, чтобы просмотр этого курса принес вам пользу, необходимо, чтобы вы имели некоторые базовые знания STL. После него вы сможете использовать STL точно и эффективно.

https://www.youtube.com/playlist?list=PL5jc9xFGsL8E_BJAbOw_DH6nWDxKtzBPA

7. Многопоточное программирование на С/С++.
Целью этого курса является обучение межпроцессному взаимодействию и синхронизации потоков. Для того, чтобы применить полученные знания, по окончанию вы сможете создать свой веб-сервер. Темы курса включают в себя «Контейнеры», «Сокеты Беркли», «Процессы», «Потоки», «Параллельное программирование» и пр.

https://www.youtube.com/playlist?list=PLwwk4BHih4fhYu3nMqgMbp_SkYC5Kv684
Кто бы хотел протестировать в облаке свои проекты на C/C++?
Intel сделали продукт, анализирующий ваш код, указывающий на проблемы и дающий советы по улучшению производительности.

Подробности по ссылке: https://software.intel.com/en-us/vtune

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

По всем вопросам пишите: @theasder