我试图使用__LINE__宏来生成不同的变量名称.我有一个名为Benchmark的作用域基准测试类(位于utils命名空间中),它的构造函数接受一个字符串.这是我创建的宏定义:
#define BENCHMARK_SCOPE utils::Benchmark bm##__LINE__(std::string(__FUNCTION__))
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会导致以下错误:
<some_file_name>(59): error C2374: 'bm__LINE__' : redefinition; multiple initialization
这使我得出结论__LINE__宏不会扩展.我根据这篇文章创建了我的超时空.你有想法为什么__LINE__不扩大?
编辑:可能编译器信息也相关.我正在使用visual studio 2010.