Tworzenie makra za pomocą __LINE__ dla różnych nazw zmiennych [duplikat]

Możliwy duplikat:
Tworzenie makra C za pomocą ## iLINIA (konkatenacja tokena z makro pozycjonowania)

Próbuję użyć__LINE__ makro do generowania różnych nazw zmiennych. Mam klasę benchmarków o nazwie Benchmark (zlokalizowaną w przestrzeni nazw utils) i jej konstruktor pobiera ciąg znaków. Oto definicja makra, którą stworzyłem:

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

Niestety powoduje to następujący błąd:

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

To prowadzi mnie do wniosku__LINE__ makra nie są rozszerzane. Stworzyłem mój macross zgodnie zten post. Czy masz pomysły, dlaczego__LINE__ nie jest rozszerzany?

EDYTOWAĆ: prawdopodobnie informacje o kompilatorze są również odpowiednie. Używam visual studio 2010.

questionAnswers(3)

yourAnswerToTheQuestion