C++ Developer • Cpp System Programming. HighLoad, Алгоритмы и Структуры данных. Разработка на Linux и Windows. STL, Boost, Qt и Embedded.
C++ Developer • Cpp System Programming. HighLoad, Алгоритмы и Структуры данных. Разработка на Linux и Windows. STL, Boost, Qt и Embedded.
2 195 подписчиков · @cpp_lib
К каналу →
AI-агенты уже экономят специалистам до 15 часов в неделю. У Яндекс Практикума есть курсы по нейросетям для разных задач и уровней подготовки: → работа с ИИ для повседневных и раб…
Читать далее →
602
Реклама
Лаконичный макрос defer для C++17 Ручное управление ресурсами в низкоуровневом си-подобном коде на C++ — довольно хлопотное занятие. Создание достойных RAII-врапперов для каждого …
Читать далее →
743

Удобный способ работы с перечислениями в C++ — приведение enum к строке и обратно.

Удобный способ работы с перечислениями в C++ — приведение enum к строке и обратно.

Во многих проектах используется enum, чтобы задать ограниченный набор значений. Но как вывести значение enum в лог? Или, наоборот, прочитать из строки и получить нужное значение enum?

C++ сам по себе не умеет конвертировать enum в строку и обратно. Вот простая реализация этого функционала через std::unordered_map:

enum class LogLevel {
Debug,
Info,
Warning,
Error
};

const std::unordered_map<LogLevel, std::string> LogLevelToString = {
{LogLevel::Debug, "Debug"},
{LogLevel::Info, "Info"},
{LogLevel::Warning, "Warning"},
{LogLevel::Error, "Error"},
};

const std::unordered_map<std::string, LogLevel> StringToLogLevel = {
{"Debug", LogLevel::Debug},
{"Info", LogLevel::Info},
{"Warning", LogLevel::Warning},
{"Error", LogLevel::Error},
};

std::string to_string(LogLevel level) {
return LogLevelToString.at(level);
}

LogLevel to_log_level(const std::string& str) {
return StringToLogLevel.at(str);
}

Такой подход хорошо работает, если enum не слишком большой. Если значений много — можно автоматизировать генерацию через макросы или использовать библиотеки вроде magic_enum.

#cpp #programming

👉 @cpp_lib
ИТ-сообщество, хватит онлайн-митапов – приходите офлайн. 18 сентября в Москве состоится ЛЦТ. Старт Кодинга, открывающее событие восьмого сезона хакатона «Лидеры цифровой трансформ…
Читать далее →
486
RAII 2.0: RAII как архитектурный инструмент в C++ Идиома RAII — давно зарекомендовал себя как удобный способ автоматического управления ресурсами в C++. Обычно мы применяем его дл…
Читать далее →
444
Другие главы канала «C++ Developer • Cpp System Programming. HighLoad, Алгоритмы и Структуры данных. Разработка на Linux и Windows. STL, Boost, Qt и Embedded.»
Выберите главу, чтобы продолжить чтение
Все посты →
Глава от 17.09.2026
RAII 2.0: RAII как архитектурный инструмент в C++ Идиома RAII — давно зарекомен…
👁 444 просмотров
Глава от 17.09.2026
ИТ-сообщество, хватит онлайн-митапов – приходите офлайн. 18 сентября в Москве с…
👁 486 просмотров
Глава от 14.09.2026
Лаконичный макрос defer для C++17 Ручное управление ресурсами в низкоуровневом …
👁 743 просмотров
Глава от 13.09.2026
AI-агенты уже экономят специалистам до 15 часов в неделю. У Яндекс Практикума е…
👁 602 просмотров
Глава от 13.09.2026
Низкоуровневый скриптинг на C++ для игровых движков Я постарался охватить тольк…
👁 622 просмотров
Глава от 10.09.2026
Пишем игру для игровой ретро-консоли Anbernic на C++ Дисклеймер Сразу скажу, чт…
👁 793 просмотров
Глава от 09.09.2026
Руководство по сборке Qt под Windows из исходников с MinGW Официальный способ у…
👁 859 просмотров
Глава от 04.09.2026
Вы сталкиваетесь с блокировками в PostgreSQL при росте нагрузки? На открытом уро…
👁 853 просмотров
Глава от 04.09.2026
#cpp #programming 👉 @cpp_lib
👁 734 просмотров

Популярные посты канала «C++ Developer • Cpp System Programming. HighLoad, Алгоритмы и Структуры данных. Разработка на Linux и Windows. STL, Boost, Qt и Embedded.»

🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 8 735 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 8 715 просмотров
QML и Widgets в одном проекте: решение без костылей Разработка приложения для настольных или встраиваемых платформ часто упирается в выбор …
👁 8 708 просмотров
Коллекция библиотек и фреймворков для C++ Список удивительных фреймворков, библиотек, ресурсов и блестящих вещей на C++ (или C). Вдохновлен…
👁 8 697 просмотров
Пишем игру для NES на C Всем привет. Я Даг. Добро пожаловать в мой учебник - Как запрограммировать игру NES на C. Вы можете сделать оригина…
👁 8 686 просмотров
Веселье с type erasure: делаем обертку с семантикой значения для полиморфных типов. Павел Новиков Цель доклада — познакомить с подноготной…
👁 8 639 просмотров
О векторном вычислении экспоненциальной функции Однажды передо мной встала задача векторизовать функцию вычисления экспоненты. Неожиданно о…
👁 8 595 просмотров
Практика языка C. Константин Владимиров. На этом занятии мы завершим первый семестр знакомства с основами языка C и разберём многомодульны…
👁 8 586 просмотров
Контракты для С++ Тимур Думлер Контрактное программирование — эффективный подход к написанию более безопасных и корректных программ. Он был…
👁 8 585 просмотров
🐦 Flappy Bird на Си: Вес APK < 100 Килобайт! 🚀 В сентябре 2024 года, увидев Flappy Bird на C# в дискорд-канале Raylib, я решил попробовать …
👁 8 527 просмотров
Преобразование JSON в объекты C++ на этапе компиляции: демонстрация возможностей принятой в C++26 рефлексии https://brevzin.github.io/c++/2…
👁 8 473 просмотров
Как в 19 лет я начал путь разработчика встраиваемого ПО Привет! Меня зовут Данила, мне 21 год, и за последние 2,5 года я успел поработать в…
👁 8 424 просмотров
Создание игры Крестики-нолики на языке C++ #cpp #programming 👉 @cpp_lib
👁 8 417 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 8 413 просмотров
Сборка C++ проектов. CMAKE. Game Engine серии 0:00:00 - Введение 0:01:32 - Пишем мини игру. FightClub 0:17:03 - MSBUILD 0:19:20 - Собственн…
👁 8 397 просмотров
⚠️ Можно знать алгоритмы машинного обучения и всё равно получать плохие результаты. Большинство проблем моделей начинаются с некачественной …
👁 8 376 просмотров
Константин Владимиров — О денотации: разрешение имен и его пересмотр в C++23 Этот доклад — попытка сделать темную и мрачную область разреше…
👁 8 356 просмотров
Оптимизация GUI на Qt Как правило, при создании desktop-приложений на платформе Qt не возникает проблем, связанных с медленностью работы GU…
👁 8 329 просмотров
🐦 Flappy Bird на Си: Вес APK < 100 Килобайт! 🚀 В сентябре 2024 года, увидев Flappy Bird на C# в дискорд-канале Raylib, я решил попробовать …
👁 8 325 просмотров
Плывущий экран. Вирус на C++. Melting Screen Программа предоставлена в образовательных целях! Автор не несёт ответственности за её использо…
👁 8 316 просмотров

Связанные темы в других каналах

Каналы из той же тематики, где часто появляются близкие сюжеты
Вся тема →
@canalmaxone
AntiCloudMod
👥 371 627 · -7 496/7д
@BelgorodDRONE
Информация БПЛА Белгород, Белгородский район
7924148410
👥 198 547 · +1 401/7д
@biologia89
РОБЛОКС🔷
РОБЛОКС В МАКС! Реклама: https://clck.ru/3Tmmgx
👥 180 965 · -2 291/7д
@WylsacomRed
Wylsacom Red
Официальный канал Wylsacom в Max. Тут всё про технологии и жизнь в ногу со временем! Розыгрыши: kichaev@wylsacom.media По вопросам сотрудничества: https://wylsacom.medi…
👥 167 858 · +1 880/7д
@TikTokModCloud
TikTokModCloud
Официальные обновления стабильного мода TikTok Чат: https://clck.ru/3S6mVh По рекламе: https://iimax.ru/dim4ugan
👥 122 672 · +1 664/7д
@yandex_browser
Яндекс Браузер с Алисой AI
Привет, это канал команды Яндекс Браузера Показываем, как превратить наши технологии в ваши возможности. Скачать Браузер тут: https://browser.yandex.ru/ Наше сообще
👥 81 205 · +10 161/7д
🏷 Темы и теги
#cpp #programming #системное программирование #структуры данных #highload #алгоритмы #embedded #Технологии
📋 О канале C++ Developer • Cpp System Programming. HighLoad, Алгоритмы и Структуры данных. Разработка на Linux и Windows. STL, Boost, Qt и Embedded.
Канал для серьезных C++ программистов. Глубокое погружение в STL, Boost и метапрограммирование (Templates). Управление памятью (Memory Management), умные указатели и безопасность кода. Разработка высоконагруженных систем, сетевое программирование и Embedded (встраиваемые системы). Сборка через CMake, компиляторы GCC/Clang. Подготовка к собеседованиям: LeetCode, System Design и ООП.
🔍 Архив всех постов Макс
Поиск по 16,709,523 постам из 203,752 каналов
Подключить за 490 ₽/мес →
Удалить пост или канал с МАКСОТЕКИ
Заявка подтверждается через бота Макс: нужно быть администратором канала и добавить бота МАКСОТЕКИ в администраторы. После проверки канал или конкретный пост скрывается с сайта.
📊 Аналитика канала «C++ Developer • Cpp System Programming. HighLoad, Алгоритмы и Структуры данных. Разработка на Linux и Windows. STL, Boost, Qt и Embedded.» ➡️ Перейти в канал Макс
Заявка в МАКСОТЕКА
Добавьте свой канал в каталог
Зарегистрируйтесь в личном кабинете и добавьте канал за пару кликов.
Перейти в личный кабинет →

Бесплатная регистрация, быстрая модерация.