我只是想知道,如果这种声明是允许在C++从移植Solaris上旧的C++代码到Linux
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上,我使用英特尔编译器11.1与命令ICPC -m32。
我是否应该包含其他库以便编译器,还是不允许这种类型的声明?
此代码自2005年以来一直使用,它似乎在Solaris和AIX上正常工作。在Solaris上,gcc编译器是gcc版本2.95.3 20010315(发行版),在AIX上它是xlc_r版本5.0 – roymustang86
Hi @ roymustang86,遇到'gcc -ansi -pedantic -Wall'。另外,gcc 4.6被认为是gcc的'current'。 4.7已经不在了。两年前,当我从事AIX 5.x的工作时,我认为我们从XlC++ 8升级到了9。 – sehe
@ roymustang86 - 这两个编译器都是从2000年初开始的;第一个C++标准是1998年,那些编译器在那些日子里倾向于支持预标准代码以使转换更容易。 –