今日、私は少し前に開発したプロジェクトでclangを試しました。g++ を使用してプロジェクトを正常にコンパイルしたので、コンパイル エラーが発生したときは驚きました。
この短いスニペットは、エラーが発生した行を再現しています。
int main() {
__attribute__((aligned(16)) char arr[5];
}
このエラーが発生します:
test.cpp:2:32: error: expected ')'
__attribute__((aligned(16)) char arr[5];
^
)
ご覧のとおり、アンバランスな括弧があります。3 つの「(」と 2 つの「)」があります。これは、実際にはコンパイル エラーが発生するように見えます。
これは、このキーワードの有効な使用法ですか? それがそうであることを示すドキュメントは何も見つかりません。
g++ 4.5.2 と clang 2.8 を使用しています。
g++ の代わりに gcc を使用すると、このエラーが検出されることに注意してください。