3

このタイプの宣言が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でIntel11.1コンパイラを使用しています。

コンパイラに追加するために他のライブラリを含める必要がありますか、それともこのスタイルの宣言はもう許可されていませんか?

4

2 に答える 2

8

それはほとんど許可されていません。最初の C++ 標準では、C の "implicit int" 規則が許可されていませんでした。C99 ではそのルールも廃止されました。しかし、ルールは単純で、コードを修正するのも簡単ですint。退屈かもしれませんが、簡単です。

于 2012-09-11T18:13:33.683 に答える
1

Default intは C++ では許可されていません。このコードを修正し、変数の明示的な型を設定する必要がありintます。

于 2012-09-11T18:12:30.330 に答える