C++ Academy
16.6K subscribers
624 photos
127 videos
1 file
584 links
По всем вопросам- @haarrp

@itchannels_telegram - 🔥 best it channels

РКН: clck.ru/3FmxJF
Download Telegram
🖥 Почему C++ не устаревает

Разберёмся, что же делает язык с 40-летней историей таким популярным и почему сегодня он только укрепляет позиции: в 2022 году C++ занял первое место среди быстрорастущих языков по версии TIOBE.

C++ и его стандарты


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

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

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

Рассмотрим некоторые претензии, которые часто предъявляются к C++

Претензия 1: C++ имеет слабую стандартную библиотеку

Отчасти эта претензия правомерна. Но ситуация улучшается.

Чтобы показать это, обратимся к другому популярному языку — Python. Рассмотрим одну из его замечательных возможностей — генератор списка (англ. list comprehension). Он позволяет одним выражением выбрать из списка все четные элементы и поделить их на два. Делается это так:


# смысл — положить в новый список x // 2 (половина x)
# для всех x из списка list, если x делится на 2
[x // 2 for x in list if x % 2 == 0]


Ещё несколько лет назад в C++ ничего подобного не было. Но сейчас можно использовать std::ranges:


namespace view = std::views;
auto even = [](int i) { return i % 2 == 0; };
auto half = [](int i) { return i / 2; };
auto range = view::all(list) |
view::filter(even) |
view::transform(half);

Немного сложнее, но смысл передаётся так же хорошо. Эта возможность была добавлена в стандартную библиотеку в 2020 году.

Как правило, Python не рассматривают в качестве конкурента C++, эти языки используются для разных целей. Но пример показывает, как растёт C++, впитывая лучшее из разных языков. Также в стандартной библиотеке появились средства для синхронизации потоков, работы с регулярными выражениями, календарём и часами, файловой системой, многопоточными алгоритмами.

Одна из самых ожидаемых возможностей C++ — работа с сетью. Сетевые приложения в C++ можно написать, только используя сторонние библиотеки. Комитет по стандартизации упорно работает, но пока не удаётся преодолеть все проблемы, чтобы построить идеальный сетевой фреймворк.

📌Читать дальше

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥114❤‍🔥1
Легкий способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

Data Science: t.me/data_analysis_ml
Java: t.me/javatg
Базы данных: t.me/sqlhub
Машинное обучение: t.me/ai_machinelearning_big_data
Go: t.me/Golang_google
C/C++/ t.me/cpluscsharp
C#: t.me/csharp_ci
Хакинг: t.me/linuxkalii
Мобильная разработка: t.me/mobdevelop
Docker: t.me/+0WdB4uvOwCY0Mjdi
Python: t.me/pythonl
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Linux: t.me/+A8jY79rcyKJlYWY6
Big Data: t.me/bigdatai
Devops: t.me/devOPSitsec
Тестирование:https://t.me/+F9jPLmMFqq1kNTMy
Собеседования: https://t.me/machinelearning_interview

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy

😆ИТ-Мемы: t.me/memes_prog

🇬🇧Английский: t.me/english_forprogrammers

ИИ: t.me/vistehno

📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🕷 SpiderSuite

Инструмент для сбора информации OSINT, который использует настраиваемые шаблоны для сбора информации из различных источников.

Усовершенствованный кроссплатформенный и многофункциональный Crawler/Spider (автоматически обходит заданные веб-страницы в Интернете и собирает информацию, такую как заголовки, текст, ссылки и изображения) с графическим интерфейсом для профессионалов в области кибербезопасности.

Spider Suite можно использовать для картирования и анализа поверхности атаки.

Написанный на C++ с использованием Qt framework, он быстрый и имеет простой пользовательский интерфейс позволяет легко сканировать целые сайты, анализировать извлеченный контент и визуализировать поверхности атаки.

Он поддерживает импорт контента из других инструментов, таких как Burp Suite и OWASP ZAP.

Github
Website

@cpluspluc
🔥9👍53🆒2🤯1
🖥 Ungar

Фреймворк C++ для оптимального управления в реальном времени с использованием шаблонного метапрограммирования.

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

Для начала работы с Ungar изучите папку example/mpc, содержащую тщательно документированный код для реализаций нелинейного управления с прогнозированием модели (MPC): для квадрокоптера, для радиоуправляемого миниатюрного автомобиля и для четвероногого робота.

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

Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥52
🖥 Структуры данных и алгоритмы

Огромная коллекция кода, материалов, примеров структур данных и алгоритмов на C++ и не только.

Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥53
🖥 Cpace - это инструмент, помогающий разрабатывать приложения на основе [.c] и [.cpp], автоматически перезапуская их при обнаружении изменений в файлах.

Пакет был создан для автоматизации компиляции и запуска [.exe] файлов при написании приложений на языке C/C++.

npm install cpace --global
# or
npm i cpace -g

Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101🔥1
Media is too big
VIEW IN TELEGRAM
🖥 Советы от создателя C++

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

Видео

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍10👎2🔥1
🖥 Parsing CTest resource

Это проект демонстрирует способ использования CTest (подробнее об этом здесь), а также предоставляет инструмент C++ для Парсинга переменных окружения, передаваемых CTest.


Если вам просто нужно парсить переменные окружения, передаваемые CTest, вы можете загрузить файл resource-parsing.hpp, включить его в свой проект и использовать river::get_resource_groups для получения этих переменных в структуре C++.

cmake -B build && cmake --build build

Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥21
Media is too big
VIEW IN TELEGRAM
Язык Си++, Rust не победит. Статический анализ и компиляторы

00:00 Вступление
00:59 Приветствие Филиппа
01:46 Как нашел первую работу Си++ программистом
02:27 Про учебу в ВУЗе
03:02 Самообучение кроме ВУЗа
04:27 Что готовил к первому собеседованию на Си++ разработчика
06:18 Тула, как лайфхак для джунов
06:57 Сколько времени нужно, чтобы воспитать джуна Си++
08:50 Си++ как первый язык, имеет смысл?
11:11 Какие демо проекты можно сделать на Си++
13:35 Написать операционную систему или идти от того, что нравится
14:56 Пробовал писать свой язык программирования?
15:21 Неочевидности в языках
17:32 Про Yacc и Bison / парсинг языков и грамматика языка
19:18 Имеет ли смысл идти в Си++ сейчас?
23:22 500 мегабайт исходников и почему мало браузеров
24:20 Отличие Си и Си++. Использование в микроконтроллерах
27:06 Тенденции роста популярности Си++
30:16 Почему Си и Си++ быстрее других языков
31:22 Ошибки в компиляторах
31:43 Стандарты, засахаривание Си++
34:56 Может лучше добавить статический анализ?
38:05 Бесплатная лицензия для opensource
38:30 Что такое статический анализ
40:32 Подарок для зрителей
40:46 Этапы компиляции кода
44:18 Как придумывают правила
47:32 Общение с программистами на поддержке
50:28 Rust убийца Си++
56:53 Какой язык взять вторым к Си++?
59:26 Статический анализ JavaScript
01:06:00 Как в этом разобраться
01:14:20 Где искать Филиппа
01:15:35 АНОНС ПРОДОЛЖЕНИЯ Байки про Си++

📍источник

@cpluspluc
👍25🔥43👎2🥱1
🖥 LatLoader

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

Havoc — реалистичный физический движок, который используется в играх;

Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1🥰1
🖥 Pointers in C for Absolute Beginners – Full Course

Указатели могут быть пугающим понятием в программировании на языке С для новичков, но они являются ключевыми для понимания этого языка.

По сути, они "указывают" на местоположение данных в памяти.

Если это звучит непонятно, не волнуйтесь - в этом бесплатном курсе вы узнаете, как они работают.

Видео

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍113🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Интересный проект: Минимально жизнеспособный декларативный графический интерфейс на языке C++

https://ossia.io/posts/minimum-viable/

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍82
Вышел GigaChat нового поколения. Разработчики @gigachat_bot качественно обновили его, изменив свой подход к обучению. Благодаря этому сервис стал лучше отвечать на запросы пользователей — примерно в два раза. При этом GigaChat также запустили в VK, аудитория сервиса уже достигла более 1 млн пользователей.

Попробовать.

@vistehno
5
🖥 modern-cpp-tricks

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

Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍152👎2🔥1