我發現一些奇怪的C++預處理器的條款,如:「#define FOO(模板)」是做什麼的?
#define COMPILER_FLOAT_ENTRIES_DO(template)
和
#define COMPILER_FLOAT_ENTRIES_DO(template) \
template(jvm_fadd) \
template(jvm_fsub) \
template(jvm_f2d)
什麼是合格的 「模板」 保留字到的#define,並調用模板(東西)是什麼意思?我在Google找不到任何東西;可能是因爲「#define」和「template」是真正常用的單詞。
在胡亂猜測英語句子,儘管出現涉及到C++,這個宏集本身起源於C環境下的特定文件,其中'template' ISN」一個保留字。即使在C++中,它也不是真的保留在預處理器階段,但是由於可能存在混淆,在此使用保留字作爲宏名稱或形式參數通常被認爲是不好的做法。 – RBerteig 2010-08-20 22:33:47