Есть таблица:
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-файл (дефолтное значение настройки может быть задано лямбдой и ссылаться на функции из разных частей проекта, так что файл будет включать в себя почти все хедеры).
Что можно использовать кроме макросов?