static_assertの拡張提案

N3846 Extending static_assert

C++11から導入されたコンパイルアサートstatic_assertを拡張する提案。以下の2点を拡張することが考えられています。

  1. static_assert(conditional);のように、表明失敗時のメッセージを省略できるようにする。省略時のデフォルトメッセージは実装定義。
  2. 表明失敗時のメッセージは、定数式であればなんでも渡せるようにする。現在は文字列リテラルのみを許可しているので、使いにくい。

単に「この式が正しく動作すること」という表明のために毎回メッセージを書きたくないユーザーが以下のようなマクロをよく書いていたので、言語サポートしよう、というものです。

#define STATIC_ASSERT(B) static_assert(B, #B)