Creando macro usando __LINE__ para diferentes nombres de variables [duplicar]

Posible duplicado:
Creando macro C con ## yLÍNEA (concatenación de tokens con posicionamiento macro)

Estoy tratando de usar el__LINE__ Macro para generar diferentes nombres de variables. Tengo una clase de referencia de ámbito llamada Benchmark (ubicada en el espacio de nombres de utils) y su constructor toma una cadena. Aquí está la definición de macro que he creado:

<code>#define BENCHMARK_SCOPE utils::Benchmark bm##__LINE__(std::string(__FUNCTION__))
</code>

Desafortunadamente esto causa el siguiente error:

<some_file_name>(59): error C2374: 'bm__LINE__' : redefinition; multiple initialization

Esto me lleva a la conclusión del__LINE__ Las macros no se expanden. He creado mi macross segúnesta publicación. Tienes ideas por que__LINE__ no se expande?

EDITAR: probablemente la información del compilador también es relevante. Estoy usando visual studio 2010.

Respuestas a la pregunta(3)

Su respuesta a la pregunta