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