我想知道在C++中是否允许这种类型的声明
static nextUnassignedTableID = 0;
static nextUnassignedFieldID = TSFID_MINIMUM_USER_TSFID;
它不会抱怨Solaris/AIX上的任何东西。
但是,在Red Hat Enterprise Linux上,它抱怨
TSIDConverter.cpp(637): error #303: explicit type is missing ("int" assumed)
static nextUnassignedTableID = 0;
TSIDConverter.cpp(638): error #303: explicit type is missing ("int" assumed)
static nextUnassignedFieldID = TSFID_MINIMUM_USER_TSFID;
在Linux上,我使用带有icpc -m32命令的英特尔11.1编译器。
我是否应该包含其他库以便编译它,或者这种声明风格不再被允许?
发布于 2012-09-11 18:13:34
这几乎是不被允许的。第一个C++标准不允许C“隐式整型”规则;C99也摆脱了这个规则。但是规则很简单,修复代码也很简单:只要编译器抱怨的地方就插入int
。也许很乏味,但却很简单。
发布于 2012-09-11 18:12:30
C++中不允许使用Default int
,您需要修复此代码并为变量设置显式int
类型。
https://stackoverflow.com/questions/12375476
复制