Erstellen eines Makros mit __LINE__ für verschiedene Variablennamen [duplizieren]

Mögliche Duplikate:
Erstellen eines C-Makros mit ## undLINIE (Token-Verkettung mit Positionierungsmakro)

Ich versuche das zu benutzen__LINE__ Makro, um verschiedene Variablennamen zu generieren. Ich habe eine Benchmark-Klasse mit Gültigkeitsbereich namens Benchmark (im utils-Namespace) und ihr Konstruktor nimmt eine Zeichenfolge. Hier ist die Makrodefinition, die ich erstellt habe:

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

Leider führt dies zu folgendem Fehler:

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

Dies führt mich zum Schluss der__LINE__ Makros werden nicht erweitert. Ich habe mein Macross nach erstelltdieser Beitrag. Hast du Ideen warum__LINE__ wird nicht erweitert?

BEARBEITEN: wahrscheinlich ist die Compiler-Info auch relevant. Ich benutze Visual Studio 2010.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage