Eclipse、LinuxでC++プロジェクトをコンパイルしています。EclipseのEnum宣言
プロジェクトは過去にWindowsでコンパイルされました。
は、私はこのような列挙型の私の宣言を持っている:
enum nameofenum:UINT32
{
one=0,
two=1
}
結果は日食でエラーです。
:UINT32
の意味はなんですか?- この宣言をLinuxに切り替えるにはどうすればよいですか?
ありがとう!!
Eclipse、LinuxでC++プロジェクトをコンパイルしています。EclipseのEnum宣言
プロジェクトは過去にWindowsでコンパイルされました。
は、私はこのような列挙型の私の宣言を持っている:
enum nameofenum:UINT32
{
one=0,
two=1
}
結果は日食でエラーです。
:UINT32
の意味はなんですか?ありがとう!!
これはstrongly typed enumのように見えますが、これはC++ 0x機能です。基本的に列挙型の基になる型を指定するので、one
とtwo
はUINT32
になります。
コンパイルするには、C++ 0x言語のこの特定の部分をサポートするコンパイラが必要です。私はGCC 4.4とVisual C++が強く型付けされたenumをある程度サポートしていると信じています。
: UINT32
は列挙型の基になる型を宣言します。それは列挙がUINT32
によって表されることを意味します。
これはC++ 0xで強く型付けされた列挙型と呼ばれる新しいC++機能です。 Visual C++は少なくともVisual C++ 2005以降、これをサポートしています。あなたが使っているg ++のバージョンはそれをサポートしていないかもしれません。
g ++でどのように動作するかは、依存しています。特定の基底型に依存するコードがない場合は、それを削除するだけです。特定の基底型に依存するコードを使用している場合は、列挙型の使用を基になる型に置き換えることを検討してください(nameofenum
ではなくUINT32
を使用してください)。しかし、これはあまりいいことではありません。
: UINT
は、列挙識別子の基になる型がUINT
であることを意味します。 hereと記載されているMicrosoftの拡張機能です。コンパイルするには: UINT
を削除してください。
コードを選択してCtrl + Kを押してコードをフォーマットしてください。プレビューを使用してください! – EboMike