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.