Мне просто интересно, если этот тип объявлений разрешен в 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 я использую компилятор Intel 11.1 с командой icpc -m32.
Должен ли я включить другие библиотеки для компиляции, или этот стиль декларации больше не разрешен?
Это почти никогда не было разрешено. Первый стандарт C ++ запрещал правило C «implicit int»; C99 также избавился от этого правила. Но правило простое, и исправление кода также просто: просто придерживайтесь int
там, где компилятор жалуется. Возможно, утомительно, но просто.
Default int
не допускается в C ++, вам нужно исправить этот код и установить явный int
тип для переменных.