Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤4👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍6❤4
Удобная распаковка нескольких значений: std::tie и std::ignore в действии!
Иногда функция возвращает несколько значений — например, пара из
С
Если нужно проигнорировать часть результата — используем
🔥 Удобно, когда нужно быстро разобрать структуру на отдельные значения, не засоряя код
📣 C++ Ready | #практика
Иногда функция возвращает несколько значений — например, пара из
std::pair. Раньше приходилось вручную обращаться к .first и .second, что быстро превращалось в нечитаемый код.С
std::tie можно сразу распаковать результат в переменные:std::pair<int, std::string> get_data() {
return {42, "ответ"};
}
int main() {
int num; std::string text;
std::tie(num, text) = get_data();
std::cout << num << " — " << text;
}Если нужно проигнорировать часть результата — используем
std::ignore:auto [code, message] = std::make_pair(200, "OK");
std::cout << code; // 200
int val;
std::tie(val, std::ignore) = std::make_pair(7, 99);
std::cout << val; // 7
🔥 Удобно, когда нужно быстро разобрать структуру на отдельные значения, не засоряя код
.first / .second.Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥7❤4
Сможет превращать любую картинку в символьную «картину» прямо в терминале или сохраняет в
.txtВ этой задаче:
• Считываем и масштабируем изображение в оттенки серого с помощью OpenCV;
• Преобразуем яркость каждого пикселя в соответствующий символ из палитры;
• Выводим построчно готовый ASCII-арт без дополнительных зависимостей.
Это минималистичный инструмент для создания текстового искусства.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥47❤8👍8🤝3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28❤6🤝5👍2
Мини-конфиг на JSON — читаем, меняем, сохраняем!
Хотите настроить приложение через внешний файл, не заводя сложный парсер? Используйте JSON: читаемо, удобно, поддерживается из коробки с
Подключаем библиотеку и читаем конфиг
Теперь можно безопасно получить значения и обновить, если нужно:
Сохраняем обратно с отступами — удобно для ручной правки:
🔥 JSON стал стандартом де-факто для конфигураций: вы получаете чистоту, читаемость и работу без бойлерплейта.
📣 C++ Ready | #практика
Хотите настроить приложение через внешний файл, не заводя сложный парсер? Используйте JSON: читаемо, удобно, поддерживается из коробки с
nlohmann/json.Подключаем библиотеку и читаем конфиг
config.json в один объект:#include <nlohmann/json.hpp>
#include <fstream>
using json = nlohmann::json;
json cfg;
std::ifstream("config.json") >> cfg;
Теперь можно безопасно получить значения и обновить, если нужно:
int port = cfg.value("port", 8080);
cfg["debug"] = true;Сохраняем обратно с отступами — удобно для ручной правки:
std::ofstream("config.json") << cfg.dump(2);🔥 JSON стал стандартом де-факто для конфигураций: вы получаете чистоту, читаемость и работу без бойлерплейта.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15🔥7👍3
Появилось два новых примитива —
std::latch и std::barrier, которые убирают лишние condition_variable и делают многопоточность читаемой.Что важно знать:
• latch — одноразовая точка сбора, ждёт завершения всех задач;
• barrier — циклическая синхронизация с коллбэком после каждой фазы;
• Просты в использовании, особенно при множестве параллельных этапов.
Так что, они убирают бойлерплейт и делают потоковый код чище и надёжнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥13❤4🤝1