我在clang上有一个编译错误,并且用gcc警告这段代码:
static alignas(16) int one_s = 1; // clang: error: an attribute list cannot appear here; gcc: warning: attribute ignored;
static __attribute__((aligned(16))) int zero_s = 0; // on the other hand this works well on both compilers...
alignas(16) int one = 1; // this also works on both compilers
__attribute__((aligned(16))) int zero = 0; // as well as this
有没有人知道为什么在包含static关键字的声明中不接受alignas?我在gcc和clang中使用了--std = c ++ 11编译器选项。 (编辑:我使用了clang 3.4及以上版本以及gcc 4.8及以上版本)
请注意,在使用Visual Studio(CL 19 RC)进行编译时,在静态声明中使用alignas时,我不会收到错误。