Перейти к содержимому

Экосистема C++: полное руководство для начинающих

Cloud X Berry

0:00 / 0:00

Экосистема C++: полное руководство для начинающих

1 586 просмотров · 3 ч назад
Cloud X Berry
79,2 тыс. подписчиков
1 586 просмотров · 3 ч назад
В этом видео Cloud X Berry объясняет C++ простым и доступным для начинающих способом. Если вы играли в современные видеоигры, пользовались веб-браузером или работали с программным обеспечением для искусственного интеллекта, велика вероятность, что C++ присутствует в них. Unreal Engine использует его, основные браузеры в значительной степени полагаются на него, а такие фреймворки, как PyTorch, используют его для критически важных с точки зрения производительности задач, стоящих за их интерфейсами на Python. C++ — это не просто язык для написания быстрого кода. Это фундамент, на котором строятся движки и библиотеки, окруженные целой экосистемой компиляторов, систем сборки, менеджеров пакетов и инструментов тестирования. Мы начинаем с того, с чего все началось: Бьярне Страуструп в Bell Labs в 1979 году, заимствовавший идеи из Simula и добавивший их к C. Это стало «C с классами», а в 1983 году — C++. Оттуда мы пишем первую программу и посмотрим, что C++ добавляет к C: классы, которые группируют данные с поведением, шаблоны, работающие с разными типами, и std::vector из стандартной библиотеки. Затем мы прослеживаем ваш код от исходного файла до запущенной программы: препроцессор, компилятор и компоновщик, почему нативные сборки ориентированы на один процессор и операционную систему, почему большие проекты компилируются медленно, и чем отличаются GCC, Clang и MSVC. Мы рассматриваем контейнеры и алгоритмы стандартной библиотеки, а также Boost, Qt и то, как управляются зависимости с помощью vcpkg и Conan. Далее следует наиболее важная часть: управление ресурсами. Стек против кучи, new и delete, и почему современный C++ полагается на RAII, std::unique_ptr и std::shared_ptr. Мы также честно говорим о компромиссе. Неопределенное поведение реально, и Chromium сообщает, что около 70% его серьезных ошибок безопасности связаны с безопасностью памяти. Поэтому мы рассматриваем инструменты, которые снижают этот риск: санитайзеры, отладчики, Clang-Tidy, модульные тесты и фаззеры. В заключение перейдем к практической стороне: CMake, Ninja и Bazel, редакторы и IDE, статические и разделяемые библиотеки и бинарная совместимость, эволюция от C++98 до C++23, где C++ используется сегодня, почему он не был заменен и когда другой язык является лучшим выбором. РАЗДЕЛЫ 0:00 C++ где-то внутри вашего программного обеспечения 0:35 От Bell Labs до C++ 1:46 Первая программа, классы и шаблоны 2:44 От исходного кода до исполняемого файла 4:16 Стандартная библиотека и не только 5:33 Память, RAII и умные указатели 7:07 Безопасность памяти и неопределенное поведение 8:05 Санитайзеры, отладчики, анализ и тесты 8:59 Системы сборки, редакторы и библиотеки 10:11 Стандарты C++ от C++98 до C++23 11:19 Где используется C++ и когда это не лучший выбор 12:40 Итоги ДЛЯ КОГО ЭТО Для начинающих, решающих, стоит ли изучать C++, для разработчиков, перешедших с Python или JavaScript, которые хотят понять, что происходит ближе к машине, для студентов, изучавших «старый» C++ и желающих увидеть современную картину, а также для всех, кто интересуется тем, как на самом деле создаются игры, браузеры и фреймворки ИИ. #cpp #программирование #разработкапрограммногообеспечения