2

これで何が起こっているのか理解できません。これは私がやろうとしていることの例です。

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()
4

2 に答える 2