Шаблонные ограничения можно описывать прямо в сигнатуре функции — без
enable_if и макросов.Пример:
template<std::integral T> T add(T a, T b)Компилятор сразу проверит, что
T — целочисленный тип, и выдаст понятную ошибку при несоответствии.Работает со стандартными и пользовательскими concept’ами (
std::floating_point, std::same_as и др.)Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍5🔥3
🔥 Дедлайн — 21 октября 🔥
Оформи заявку на Хакатон ИТ-холдинга Т1 сегодня и поборись за призовой фонд 800 000₽
Финишная прямая: подай заявку на Хакатон Т1 Новосибирск.
Реальные кейсы, рост и нетворкинг.
Команды от 3 до 5 человек.
Призовой фонд 800 000 ₽.
Завершение регистраций — 21 октября, 23:59 НСК.
Принять участие
Оформи заявку на Хакатон ИТ-холдинга Т1 сегодня и поборись за призовой фонд 800 000₽
Финишная прямая: подай заявку на Хакатон Т1 Новосибирск.
Реальные кейсы, рост и нетворкинг.
Команды от 3 до 5 человек.
Призовой фонд 800 000 ₽.
Завершение регистраций — 21 октября, 23:59 НСК.
Принять участие
Быстро удаляем пробелы в начале и в конце строки!
Когда мы читаем строки из файла, пользовательского ввода или сетевого запроса — часто получаем "шум": пробелы, табы, переводы строк.
Во многих языках есть встроенные
Начнём с подключения нужных заголовков:
Теперь реализуем функцию
• пропускает все пробелы с начала строки;
• пропускает все пробелы с конца;
• возвращает обрезанную часть как новую строку:
Проверим, как это работает на примере строки с лишними пробелами и переводами строк:
Результат выполнения:
🔥 Теперь у тебя есть удобная функция, которая безопасно удаляет "мусор" по краям строки.
📣 C++ Ready | #практика
Когда мы читаем строки из файла, пользовательского ввода или сетевого запроса — часто получаем "шум": пробелы, табы, переводы строк.
Во многих языках есть встроенные
trim()-функции, но в C++ стандартной такой нет. Зато её легко реализовать самому — компактно, эффективно и без сторонних зависимостей.Начнём с подключения нужных заголовков:
#include <string>
#include <cctype> // std::isspace
#include <algorithm>
#include <iostream>
Теперь реализуем функцию
trim, которая:• пропускает все пробелы с начала строки;
• пропускает все пробелы с конца;
• возвращает обрезанную часть как новую строку:
std::string trim(const std::string& s) {
auto start = std::find_if_not(s.begin(), s.end(), ::isspace);
auto end = std::find_if_not(s.rbegin(), s.rend(), ::isspace).base();
return (start < end) ? std::string(start, end) : "";
}Проверим, как это работает на примере строки с лишними пробелами и переводами строк:
std::string raw = " \t\n Hello, world! \n ";
std::string cleaned = trim(raw);
std::cout << "[" << cleaned << "]\n";
Результат выполнения:
[Hello, world!]
🔥 Теперь у тебя есть удобная функция, которая безопасно удаляет "мусор" по краям строки.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥7👍4
Scoped enum не даёт случайных преобразований и позволяет выбрать размер хранения под задачу.Что важно знать:
• Не превращается в число;
• Задаётся точный размер;
• Имена в своей зоне.
Он помогает писать читаемый код без багов и лишнего шума от неявных действий.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15🤝12❤4👍2😁1
❤10👍6🔥3
Сегодня напишем минимальный аналог
ping: отправляем пакет, получаем ответ и считаем задержку между ними.Что важно знать:
• Нужен доступ root;
• Пакеты формируем сами;
• Ответ ждём вручную;
Работает уже в минимуме, а дорастает до полноценного инструмента всего за пару шагов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21❤7👍5
В C++ есть мощный инструмент —
std::string_view. Он позволяет «смотреть» на часть строки без копий и аллокаций. Быстро, удобно, безопасно (если не забыть про время жизни).В примере — функция
get_ext() возвращает расширение файла из пути, не создавая новых строк.Работает с
std::string, литералами, даже const char* — просто и эффективно.Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍5🔥2🤝1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍8❤4🤝3