1

gcc は次のコードで正常にコンパイルされます

enum AVMediaType {
    AVMEDIA_TYPE_UNKNOWN = -1,
    AVMEDIA_TYPE_VIDEO,
    AVMEDIA_TYPE_AUDIO,
    AVMEDIA_TYPE_DATA,
    AVMEDIA_TYPE_SUBTITLE,
    AVMEDIA_TYPE_ATTACHMENT,
    AVMEDIA_TYPE_NB
};

static int wanted_stream[AVMEDIA_TYPE_NB]={
    [AVMEDIA_TYPE_AUDIO]=-1,   // Line 234
    [AVMEDIA_TYPE_VIDEO]=-1,
    [AVMEDIA_TYPE_SUBTITLE]=-1,
};

しかし、g ++は次のエラーをスローします

playerthread.cpp:234: error: expected primary-expression before '[' token

ここで何が問題なのですか?

4

1 に答える 1

1

これらの指定された初期化子は g++ ではサポートされていませんが、gcc ではサポートされています。C++標準で許可されているかどうかはわかりません。コードを非常に単純なものにすると、同じことがわかります。

int array[10] = { [1] = 5 };

C++ではなく、Cで問題ありません。

于 2012-08-30T13:52:12.430 に答える