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.

questionAnswers(3)

yourAnswerToTheQuestion