Criando macro usando __LINE__ para diferentes nomes de variáveis [duplicado]
Duplicata Possível:
Criando uma macro C com ## eLINHA (concatenação de token com macro de posicionamento)
Eu estou tentando usar o__LINE__
macro para gerar nomes de variáveis diferentes. Eu tenho uma classe de benchmark de escopo chamado Benchmark (localizada no namespace utils) e seu construtor recebe uma string. Aqui está a definição de macro que criei:
<code>#define BENCHMARK_SCOPE utils::Benchmark bm##__LINE__(std::string(__FUNCTION__)) </code>
Infelizmente isso causa o seguinte erro:
<some_file_name>(59): error C2374: 'bm__LINE__' : redefinition; multiple initialization
Isso me leva à conclusão de que__LINE__
macros não são expandidas. Eu criei meu macross de acordo comesta postagem. Você tem idéias porque__LINE__
não se expande?
EDITAR: provavelmente as informações do compilador também são relevantes. Estou usando o visual studio 2010.