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

Автор: @energy_it

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

Реклама на бирже: https://telega.in/c/cpp_ready
Download Telegram
👩‍💻 Строковые проверки без лишнего кода!

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

В этом гайде:

Проверки текста без лишних вычислений всего одной функцией;

Пишем код яснее и понятнее буквально за пару строк;

Текстовые проверки быстрыми и надёжными буквально в один вызов.


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

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍87
👩‍💻 Командный старт-финиш!

Овладей std::barrier и забудь о рыхлых точках синхронизации: пусть потоки аккуратно приходят к контрольной черте, запускают единый callback и дружно рвутся в следующий раунд — без гонок, пропусков и лишних ожиданий.

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥296👍4🤝1
Проверки на этапе компиляции — static_assert!

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

Подключаем заголовок с трейтом типов для последующих проверок:
#include <type_traits>


Простейшая проверка: убеждаемся, что int занимает хотя бы 4 байта в целевой системе:
static_assert(sizeof(int) >= 4, "int должен быть не менее 4 байт");


В шаблонах static_assert помогает выдавать информативные ошибки: при попытке check_float<int>() компиляция не пройдёт:
template<typename T>
void check_float() {
static_assert(std::is_floating_point_v<T>, "T должен быть плавающим типом");
}

int main() {
check_float<double>(); // OK
// check_float<int>(); // приведёт к ошибке: "T должен быть плавающим типом"
}


🔥 Это ваш первый фильтр ошибок, ловите некорректные условия сразу при сборке!

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥198👍3
👩‍💻 Мини-CLI для удобного просмотра последних git-коммитов!

Утилита на C++ с помощью libgit2 выводит N последних коммитов вместе с автором, временем и кратким сообщением в понятном консольном формате.

В этой CLI-утилите:

Помогает быстро просматривать историю важных изменений проекта;

Упрощает командную строку и избавляет от лишних действий;

Позволяет всегда видеть автора и время каждого коммита.


Этот инструмент станет отличным дополнением к рабочему процессу C++ проектов и ускорит анализ изменений.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍54🤝1
🤨 Многие об этом не знают и почти не используют!

Чтобы нельзя было «случайно проигнорировать» важный результат, пометьте функцию атрибутом [[nodiscard]]. Компилятор предупредит, если возвращаемое значение не используют.

Пример: parse_num() возвращает std::optional<int> с [[nodiscard]]. Вызов без проверки (parse_num("xx");) — сразу ворнинг, а корректный путь — через if (auto n = ... ).

🔥 Ловит «забыл проверить» ещё на этапе сборки и отлично сочетается с std::optional/std::expected.

📣 C++ Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍85
👩‍💻 Синхронная итерация и батчи без лишних копий!

В этой шпаргалке — знакомство с zip_view и chunk_view: как пробегать сразу по нескольким диапазонам, получая кортежи из элементов разных контейнеров, и разбивать длинные последовательности на удобные порции для пакетной обработки.

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥184👍4