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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/cpp_ready
加入频道
Ограничиваем шаблоны через Concepts и requires в C++20!

Шаблоны в C++ мощные, но часто сложно читать ошибки при неправильных типах. С Concepts стало проще: теперь можно явно ограничивать допустимые типы.

Вместо шаблонов «на авось» — пишем осмысленные требования!

Допустим, у нас есть функция, которая должна работать только с числовыми типами:
#include <concepts>  // std::integral, std::floating_point
#include <iostream>

// Обобщённая функция только для целых чисел
template <std::integral T>
void print_twice(T value) {
std::cout << value << " " << value << '\n';
}


Теперь, если вызвать print_twice("hello") — компиляция просто не пройдёт. А с print_twice(42) — всё отлично.

Можно использовать requires для более сложной логики:
template <typename T>
requires std::floating_point<T>
void print_square(T value) {
std::cout << "Квадрат: " << value * value << '\n';
}


🔥 Это позволяет задавать чёткие ограничения для шаблонов. Программы становятся безопаснее, читаемее и понятнее!

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥96
Что же выведет консоль?
Anonymous Quiz
16%
A
57%
B
5%
C
22%
D
19🔥9👍5
👩‍💻 Разберем packaged_task — обёртка для отложенного выполнения функции с получением результата через future!

Класс позволяет связать любой callable, выполнить его в удобный момент, получить результат выполнения через возвращённый future, повторно использовать задачу, обменивать её состояние и освобождать связанный callable в виде std::function.

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍76🤝2
Media is too big
VIEW IN TELEGRAM
😎 Нашёл вам отличный сайт для изучения C++ — Programiz!

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

Она предлагает пошаговые учебники, практические примеры и онлайн-компилятор для изучения плюсов.

📌 Оставляю ссылочку: programiz.com

📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍7🔥4
👩‍💻 Таймер с прогресс-баром!

Консольная утилита, которая с помощью Boost.Progress визуально отображает обратный отсчёт заданного числа секунд.

Важно помнить:

Прогресс-бар наглядно отражает состояние выполнения заданного таймера.

Гибкое перенаправление вывода позволяет интегрировать бар куда угодно.

Принцип работы легко адаптируется к любым другим задачам консоли.


Это позволяет просто и наглядно адаптировать визуализацию прогресса под другие консольные задачи.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥198👍5🤝1
🐱 Отличная статья — вводный туториал по созданию простого 3D-движка!

В этой статье:
• Пошаговая настройка среды и сохранение картинки в формате PPM
• Отрисовка карты уровня в виде сетки из прямоугольников
• Добавление игрока на карту с простыми координатами

🔊 Продолжай читать на Habr!


📣 C++ Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍5🔥4
👩‍💻 Разберем string_view — лёгкая невладеющая ссылка на часть строки без копирования данных!

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

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