2017-12-26 10 views
-1
class A 
{ 
    static const int x=3; 
    char array[x] :24; 
}; 

error: function definition does not declare parameters char array[x] :24;クラス - 関数定義はパラメータ

このエラーは何を意味し、なぜ私はそれを取得していますが宣言されていませんか?

+1

_「このエラーは何を意味していますか?_無効な構文です。 _なぜ私はそれを得ているのですか?_これはビットフィールドユニオンの有効な構文ではないためです。 – user0042

+0

int x = 3だけではないのはなぜですか? – QuIcKmAtHs

答えて

2

違法なメンバーを宣言するという意味です。はっきり[class.bit/]3に置か:基本的なタイプのセクションをご参照

A bit-field shall not be a static member. A bit-field shall have integral or enumeration type ([basic.fundamental]).

を整数または列挙タイプが何であるかを明確にします。配列はそれらの1つではありません。そして、メンバー宣言者の[x]がそれを1つにしようとします。

しかし、エラーメッセージのテキスト自体はより良い表現になるかもしれません。

関連する問題