コンパイル時の静的アサートを C (C++ ではなく)、特に GCC で実装するにはどうすればよいでしょうか?
ベストアンサー1
C11 標準では_Static_assert
キーワードが追加されます。
これはgcc-4.6 以降で実装:
_Static_assert (0, "assert1"); /* { dg-error "static assertion failed: \"assert1\"" } */
最初のスロットは整数定数式である必要があります。 2 番目のスロットは、long ( _Static_assert(0, L"assertion of doom!")
) にすることができる定数文字列リテラルです。
これは clang の最近のバージョンでも実装されていることに注意してください。