roy*_*g86 3 c++ linux static solaris
我只是想知道在C++中是否允许这种类型的声明
static nextUnassignedTableID = 0;
static nextUnassignedFieldID = TSFID_MINIMUM_USER_TSFID;
Run Code Online (Sandbox Code Playgroud)
它不会在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;
Run Code Online (Sandbox Code Playgroud)
在Linux上,我使用Intel 11.1编译器和命令icpc -m32.
我是否应该包含其他库以使其成为编译器,还是不再允许这种声明风格?
它几乎从未被允许过.第一个C++标准不允许使用C"隐式int"规则; C99也摆脱了这条规则.但规则很简单,修复代码也很简单:只需坚持int编译器抱怨的地方即可.也许,单调乏味,但直截了当.