1
我發現這個代碼的Sparc LLVM後端:這些宏做什麼(LLVM)?
extern "C" void LLVMInitializeSparcTargetInfo() {
RegisterTarget<Triple::sparc, /*HasJIT=*/true> X(TheSparcTarget, "sparc",
"Sparc");
RegisterTarget<Triple::sparcv9, /*HasJIT=*/true> Y(TheSparcV9Target,
"sparcv9", "Sparc V9");
RegisterTarget<Triple::sparcel, /*HasJIT=*/true> Z(TheSparcelTarget,
"sparcel", "Sparc LE");
}
我不明白是什麼X
,Y
,Z
宏做,我找不到他們的任何定義或文檔。
它們不是宏,它們是在該函數中聲明的三個對象的名稱。可能它們只是爲了'RegisterTarget'構造函數的一些副作用而被聲明的。你想查找'RegisterTarget'模板類的文檔。 –
@MatteoItalia:這不是一個評論,而是一個已經發布的評論! –
@LightnessRacesinOrbit:我發表該評論(*之前*你的回答),因爲我在公車上,沒有時間深入搜索「RegisterTarget」的實際情況和所做的事情(我通常會這麼做在發佈之前已經做了適當的回答)。 –