C/C++ Ready | Программирование
14.5K subscribers
990 photos
52 videos
431 links
Авторский канал по разработке на C и C++.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

Заявление в РКН: № 6382873737

Реклама на бирже: https://telega.in/c/cpp_ready
Download Telegram
👩‍💻 Как освежить объект в старой памяти?

Функция std::launder сообщает компилятору, что по адресу создан новый объект.

Что важно знать:
• Без него программа может получить старое число;

Его вызов гарантирует чтение именно новой записи;

Нужен только при хитром. обращении с памятью


Используй разумно, избегай неожиданных ошибок.

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥155👍3
std::ranges + views в действии: фильтруем и преобразуем без циклов!

Нужно из вектора чисел отфильтровать чётные и возвести их в квадрат?

В C++20 это можно сделать декларативно — без for, временных переменных и ручного перебора:
std::vector<int> data{1,2,3,4,5,6,7,8,9,10};


Создаём исходный вектор с числами от 1 до 10:
auto pipeline = data
| std::views::filter([](int x) { return x % 2 == 0; })
| std::views::transform([](int x) { return x * x; });


Формируем pipeline из двух представлений: фильтрация чётных чисел и возведение их в квадрат:
std::ranges::copy(
pipeline,
std::ostream_iterator<int>(std::cout, " ")
);


Выводим полученные значения в консоль через std::ranges::copy и итератор вывода.

🔥 Современный C++ позволяет выразить обработку контейнеров кратко, наглядно и без лишней рутины!

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114🔥3
👩‍💻 Разбираем std::mdspan — универсальный способ представить массив как многомерную структуру!

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

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥226👍4
Что же выведет консоль?
Anonymous Quiz
16%
A
56%
B
19%
C
8%
D
👍96🔥3🤝1
👩‍💻 Утилита для чеклистов с JSON‑хранилищем!

Позволяет быстро добавлять задачи, отмечать их выполненными и хранить в локальном JSON‑файле.

В этой задаче:
Загружает и сохраняет список задач через обычный текстовый файл.

Позволяет переключать статус задачи одной командой в терминале.

Структура и код легко расширяются под любые нужды.


Минималистичный помощник для повседневных дел.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥6👍5
Обходим все .cpp файлы в проекте!

Нужно найти все .cpp файлы в дереве каталогов — например, для подсчёта строк, парсинга или запуска сборки. Вместо вызова find из shell — используем стандартную библиотеку C++.

Сначала подключим нужные заголовки:
#include <filesystem>
#include <iostream>


Теперь проходимся по всем подкаталогам и фильтруем .cpp:
namespace fs = std::filesystem;

for (const auto& entry : fs::recursive_directory_iterator("src"))
if (entry.path().extension() == ".cpp")
std::cout << entry.path() << '\n';


🔥 Чтение файловой структуры стало кроссплатформенным и безопасным — никакой магии, только std-решения.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥123👍2
👩‍💻 Логируем без макросов с std::source_location!

Теперь можно узнать имя функции, файл и строку вызова — без FILE и LINE.

Что важно знать:
Контекст подставляется автоматически — просто передай параметр по умолчанию;

Подходит для логгера, assert-проверок и трассировки;

Упрощает отладку и делает код самодокументируемым.


Добавь в свой тулкит — сразу станет чище.

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍73