これは私のコードです:
// Defines a tuple
#define __WINDOW__RESOLUTION__ 500, 200
// Seperate the tuple
#define __WINDOW__X__1(Width, Height) (Width)
#define __WINDOW__Y__1(Width, Height) (Height)
// Add another sort of indirection because my tuple is a macro
#define __WINDOW__X__(Macro) __WINDOW__X__1(Macro)
#define __WINDOW__Y__(Macro) __WINDOW__Y__1(Macro)
// These should be the final values 500 and 200
#define __WINDOW__RESOLUTION__X__ (__WINDOW__X__(__WINDOW__RESOLUTION__))
#define __WINDOW__RESOLUTION__Y__ (__WINDOW__Y__(__WINDOW__RESOLUTION__))
最終的な数値を指定する最初のマクロを使用すると、何か問題が発生するようです:
std::cout << __WINDOW__RESOLUTION__X__ << std::endl; // Outputs 200 instead of 500
上記の行は数値 200 を出力するため、X 値ではなく Y 値
std::cout << __WINDOW__RESOLUTION__Y__ << std::endl; // ERR with macro underlined
この行はコンパイルさえしません [ C2059、構文エラー: ")" ]
助けてくれてありがとう、アレックス