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:

#define BENCHMARK_SCOPE utils::Benchmark bm##__LINE__(std::string(__FUNCTION__))

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__&nbsp;Las macros no se expanden. He creado mi macross segúnesta publicación. Tienes ideas por que__LINE__&nbsp;no se expande?

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