C++11から導入されたコンパイルアサートstatic_assert
を拡張する提案。以下の2点を拡張することが考えられています。
static_assert(conditional);
のように、表明失敗時のメッセージを省略できるようにする。省略時のデフォルトメッセージは実装定義。- 表明失敗時のメッセージは、定数式であればなんでも渡せるようにする。現在は文字列リテラルのみを許可しているので、使いにくい。
単に「この式が正しく動作すること」という表明のために毎回メッセージを書きたくないユーザーが以下のようなマクロをよく書いていたので、言語サポートしよう、というものです。
#define STATIC_ASSERT(B) static_assert(B, #B)