私はアプリケーションのすべての設定にアクセスするための一般設定構造体を1か所で実装しようとしています。アプリの各モジュールには独自の設定クラス/構造体があります。私は一般設定の構造体に各モジュール設定の型を持つメンバを定義したいと思います。簡単にするために、モジュール設定ごとに新しいメンバを作成する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++でマクロを使用するための1語のガイドです。**はありません**。 –
マクロからセミコロンを削除する必要があります。 – StoryTeller
なぜstruct内にマクロを定義しますか? – user463035818