これで何が起こっているのか理解できません。これは私がやろうとしていることの例です。
class WhatThe
{
public:
WhatThe(std::string Type, int channel) {}
~WhatThe() {}
void Doitnow() {}
};
#define DO_SOMETHING_TEST1 WhatThe("TEST1", channel)
#define DO_SOMETHING_TEST2 WhatThe("TEST2", channel)
#define DO_IT(type, channel) \
DO_SOMETHING_##type.Doitnow()
それから呼び出す
DO_IT(TEST1,1);
-- エラー: 'channel' はこのスコープで宣言されていませんでした
私ができることはありますか、マクロ内にマクロを持ち、それらを介してパラメーターを渡すことはできますか? そう思っただろう
DO_SOMETHING_##type.Doitnow()
に拡張されることになります
WhatThe("TEST1", 1).DoitNow()