Ambiguity issues when using macro definitions in C++

as follows:

#include <map>

#define FOO(type, r) type r

int main() {
  FOO(double, x);
  // FOO(std::map<int, int>, y); // 编译报错
  //
  // 解决方法
  using Map = std::map<int, int>;
  FOO(Map, z);
}

Guess you like

Origin blog.csdn.net/zmhzmhzm/article/details/128839069