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

Автор: @energy_it

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

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

Библиотека spdlog превращает рутинные записи в лаконичные вызовы и сохраняет мощь гибкой настройки без сложных файлов и лишних аргументов.

В ней есть:

Легкий старт даже в большом проекте;

Понятные отчеты сразу после запуска;

Встроенная защита от задержек при запись.


Добавьте spdlog и забудьте о долгой настройке логов.

📣 C++ Ready | #библиотека
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥6👍5🤝1
👍3413🔥4👎2
👩‍💻 Скачивай файлы быстро и без усилий!

С curlpp вы создадите компактную утилиту, которая надёжно загружает файлы по HTTP и отображает индикатор прогресса прямо в терминале.

В этой задаче:

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

Выводит статус работы прямо в окне консоли;

Обеспечивает понятную обработку ошибок без лишних заморочек.


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

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥154👍3
This media is not supported in your browser
VIEW IN TELEGRAM
☕️ Learn Anything — глобальная карта знаний, которая позволяет учиться по-настоящему!

Это не просто учебник, а визуальная карта: ты вводишь тему, и сразу видишь список лучших ресурсов для погружения. Можно строить свой путь обучения. А ещё всё открыто и развивается сообществом.

📌 Оставляю ссылочку: learn-anything.xyz

📣 C++ Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥52
Пишем свой assert с логированием и stacktrace!

Сейчас научимся создавать удобный макрос ASSERT, который при провале проверки выводит не только выражение и место в коде, но и подробный stacktrace. Это пригодится для быстрой отладки и локализации ошибок в сложных проектах.

Начнём с подключения библиотек из стандарта C++23 — ничего дополнительно не ставить не нужно:
#include <iostream>
#include <stdexcept>
#include <source_location>
#include <stacktrace>


Теперь объявим функцию-обёртку, которая будет бросать исключение с нужными данными:
void assert_fail(const char* expr,
const std::source_location& loc = std::source_location::current()) {
std::cerr << "ASSERTION FAILED: (" << expr << ")\n"
<< " at " << loc.file_name() << ":" << loc.line()
<< " in " << loc.function_name() << "\n"
<< "Stacktrace:\n" << std::stacktrace::current() << "\n";
std::terminate();
}


И сам макрос, использующий эту функцию:
#define ASSERT(expr) \
((expr) ? void(0) : assert_fail(#expr))


Давайте проверим на примере:
int factorial(int n) {
ASSERT(n >= 0);
return n <= 1 ? 1 : n * factorial(n - 1);
}

int main() {
std::cout << "5! = " << factorial(5) << "\n";
std::cout << "(-1)! = " << factorial(-1) << "\n"; // вызовет ASSERT
return 0;
}


При запуске получим:
5! = 120
ASSERTION FAILED: (n >= 0)
at example.cpp:8 in factorial()
Stacktrace:
#0 factorial() at example.cpp:8
#1 main() at example.cpp:14
#2 __libc_start_main
...


🔥 Таким образом ты получаешь собственный assert с детальным логом и стек-трейсом — никакой потери контекста при отладке и быстрый поиск причины крашей.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍10🔥6🤝1
👩‍💻 Создаём QR-код в один клик!

Когда обычный текст превращается в матрицу пикселей, этот инструмент без усилий создаёт чёткий QR-код, сохраняет его в PNG и подготавливает для мгновенного использования.

В этой задаче:

Быстро генерируется изображение для мобильного сканирования;

Минимум зависимостей — один заголовочный файл и PNG-кодек;

Лёгко интегрируется в любой C++-проект без сложных сборок.


Проверьте, как просто получить готовый QR-код и делиться ссылками мгновенно!

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3610👍3🤝1