3 Sept 2026, 07:12 UTC570 views8 reactionsread 3 September 2026 Photo
Собираем scope guard для автоматического отката!
Иногда функция успевает изменить состояние, открыть ресурс или создать временный файл, а потом падает на следующем шаге. Вручную расставлять cleanup перед каждым return неудобно и легко забыть.
В этой задаче:
• сохраняем cleanup-функцию
• запускаем её в деструкторе
• отключаем cleanup после успешного завершения
• используем guard как маленькую защиту от ранних выходо…
❤3👍3🔥2
2 Sept 2026, 14:12 UTC≈1,080 views13 reactionsread 3 September 2026 Photo
Почему ссылка на элемент vector может внезапно сломаться?
Иногда хочется сохранить ссылку на элемент, а потом продолжить добавлять данные:
std::vector<int> nums{10, 20};
int& first = nums[0];
nums.push_back(30);
На вид всё спокойно: ссылка указывает на первый элемент.
Но если при push_back() вектору не хватит места, он выделит новый блок памяти и перенесёт туда элементы.
После этого старая ссылка уже невалидна:
…
🔥6👍4❤3
2 Sept 2026, 11:12 UTC≈1,180 views0 reactionsread 3 September 2026 Photo
💻 Как пользоваться Claude без лимитов и с гарантией на весь срок? Расскажем, где оформить полный доступ
😞 Бесплатная версия Claude упирается в лимиты? А дешёвый доступ от случайных продавцов живёт до первой блокировки, а потом ни аккаунта, ни денег, ни ответа в личке?
😎 С нами всё иначе, мы занимаемся этим не первый год и знаем процесс до мелочей. Ты оформляешь заказ и предоставляешь необходимые данные, а мы активи…
2 Sept 2026, 07:12 UTC≈1,190 views16 reactionsread 3 September 2026 Photo
Разбираем std::expected для ошибок без исключений!
std::expected помогает вернуть либо значение, либо понятную ошибку через один тип. Это удобно для парсинга, загрузки конфигов, сетевых ответов и любых операций, где ошибка является обычным результатом.
📣 C++ Ready | #шпора
🔥11❤4👍1
1 Sept 2026, 12:12 UTC≈1,360 views14 reactionsread 3 September 2026 Фильтруем файлы по расширению через std::filesystem!
Иногда нужно быстро пройтись по папке и выбрать только нужные файлы. Например, найти все .log, .json, .txt или .cpp файлы для дальнейшей обработки.
Для этого удобно использовать std::filesystem. Он даёт нормальные типы для путей, директорий и файлов без ручной склейки строк.
Сначала зададим директорию и нужное расширение:
namespace fs = std::filesystem;
fs::pat…
❤7👍4🔥3
1 Sept 2026, 09:12 UTC≈1,140 views4 reactionsread 2 September 2026 Photo
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
ВАЙБКОДИНГ: t.me/data_analysis_ml
DevOps: t.me/DevOPSitsec
Docker: https://t.me/+90Z5TAyfuNU5Y…
❤3😁1
1 Sept 2026, 07:12 UTC≈1,240 views15 reactionsread 3 September 2026 Photo
Шпаргалка по std::move в алгоритмах C++!
Например, std::move из <algorithm> переносит элементы из одного диапазона в другой. Это не то же самое, что std::move из <utility>, который просто превращает объект в rvalue.
На картинке показано, как работает алгоритм move. Есть исходный диапазон, целевой диапазон, возвращаемый итератор и вариант ranges::move из C++20.
Сохрани, чтобы не потерять!
📣 C++ Ready | #ресурс
❤7👍5🔥3
31 Aug 2026, 17:53 UTC≈1,340 views15 reactionsread 3 September 2026 Photo
Почему structured binding может неожиданно копировать данные?
В C++ structured binding удобно распаковывает пары, tuple и элементы map:
auto item = std::pair{1, std::string("ready")};
auto [id, name] = item;
Но здесь id и name это копии значений из item.
Если изменить name, исходная пара не изменится:
name = "cpp";
std::cout << item.second; // ready
Для маленьких чисел это неважно, но для строк, векторов и боль…
❤6🔥5👍4
31 Aug 2026, 07:12 UTC≈1,610 views18 reactionsread 3 September 2026 Photo
Интересная статья про компилятор на C++ и LLVM!
Автор рассказывает, как писал собственный язык Marble и постепенно собирал вокруг него lexer, parser, AST, генерацию LLVM IR и диагностику ошибок.
В статье автор показывает:
• как разбить компилятор на понятные этапы
• зачем нужен AST перед генерацией LLVM IR
• как обрабатывать ошибки так, чтобы язык было реально удобно развивать
Продолжай читать на Habr
📣 C++ Ready…
👍10❤4🔥3😁1
29 Aug 2026, 12:10 UTC≈2,020 views19 reactionsread 3 September 2026 Photo
Зачем в C++ помечать важные результаты через [[nodiscard]]?
Иногда функция возвращает значение, которое нельзя просто проигнорировать: статус операции, ошибку, открытый ресурс, результат валидации.
Например:
bool save_config() {
return write_file("config.json");
}
save_config();
Код компилируется, но результат потерян. Если сохранение не удалось, программа может продолжить работу так, будто всё нормально.
Дл…
❤9👍7🔥3
29 Aug 2026, 08:12 UTC≈1,720 views20 reactionsread 3 September 2026 Photo
Разбираем std::variant: как хранить разные типы без unsafe union!
std::variant помогает описывать значения, которые могут быть одним из нескольких заранее известных типов. Это удобно для парсеров, состояний, команд, ошибок и ответов API: данные остаются типобезопасными, а компилятор помогает не забыть обработать нужные варианты.
📣 C++ Ready | #шпора
🔥12❤5👍3
28 Aug 2026, 08:12 UTC≈2,000 views16 reactionsread 2 September 2026 Photo
Напоминалка по lambda expressions в C++!
Например, capture by reference позволяет лямбде работать с внешней переменной напрямую, capture by value сохраняет копию значения, а mutable даёт менять захваченную копию внутри лямбды.
На картинке собраны основные приёмы работы с lambda expressions. Есть захваты по ссылке и по значению, init capture, immediately invoked lambdas, mutable lambdas, generic lambdas, perfect for…
❤7👍6🔥3
Showing the 12 most recent of 42 posts we hold for @cpp_ready. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.