Я пытаюсь реализовать общую структуру настроек, чтобы получить доступ ко всем настройкам моего приложения в одном месте. Каждый модуль приложения имеет свои собственные настройки class/struct. Я хочу определить член с типом каждого параметра модуля в общих настройках struct. Чтобы упростить задачу, я хочу определить макрос REGISTER, который создает новый член для каждой настройки модуля.C++ Использовать макросы для определения члена класса для одного класса
Что-то вроде этого:
struct Settings
{
// I know this is not working
#define REGISTER_SETTINGS(settings) \
settings _##settings = ##settings();
};
struct ServerSettings
{
int port = 8080;
string ip = "0.0.0.0";
};
REGISTER_SETTINGS(ServerSettings);
struct WindowSettings
{
int width = 640;
int height = 480;
string title = "window";
};
REGISTER_SETTINGS(WindowSettings);
В конце концов мои настройки структура должна выглядеть следующим образом:
struct Settings
{
ServerSettings _ServerSettings = ServerSettings();
WindowSettings _WindowSettings = WindowSettings();
};
Я понятия не имею, как я должен получить макрораскрытие там.
Одноязычное руководство по использованию макросов в C++: ** не **. –
Вам нужно удалить точку с запятой из макроса, для одного – StoryTeller
Почему вы определяете макрос внутри структуры? – user463035818