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.