Задать вопрос
@ImagineTables

Как сделать простую рефлексию (стрингизацию имён типов) на C++23?

Есть таблица:

struct Settings
{
    struct Category1
    {
        static Type<int> Value1;
        static Type<bool> Value2;
    };
    struct Category2
    {
        static Type<Str> Value3;
        static Type<double> Value4;
    };
};


Конструктор Type<> принимает помимо дефолтного значения для настройки две строки: имя категории и имя настройки (они используются для сериализации). Эти строки должны совпадать с именем родительской структуры (например, Category1) и именем переменной (например, Value1). Важно, что инициализация элементов Settings обязательно должна быть вынесена в отдельный .cpp-файл (дефолтное значение настройки может быть задано лямбдой и ссылаться на функции из разных частей проекта, так что файл будет включать в себя почти все хедеры).

Что можно использовать кроме макросов?
  • Вопрос задан
  • 12 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++
    12 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Академия Эдюсон
    Разработчик игр на Unreal Engine + ИИ
    9 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы