在CMake中允许仅限数字变量名称的原因是什么? 它使下一个代码变得令人沮丧(如果条件变为真):
set(1 3)
set(2 3)
if (1 EQUAL 2)
MESSAGE( "hi there" )
endif()
更有可能的用法(如果条件也变为真):
set(1 2)
... # later on, or even in the other file:
set(var1 1)
if (${var1} EQUAL 2)
MESSAGE( "hi there" )
endif()
PS我理解为什么IF/WHILE内没有使用${}
的变量引用。但是只有数字变量名的可能性使得使用IF更容易出错......
答案 0 :(得分:0)
来自Brad King CMake issue tracker的答案:
作为参考,变量名是任意字符串,例如
let you directly download export.csv file
允许使用纯数字名称是其副作用。
当然,它们可以以令人困惑的方式使用。甚至不允许他们 如果仅用于if()评估,则需要一个策略。