プログラミングにおいて、前提として満たされているべき条件を記述する機能のことです。
前提条件とは、コンパイルの時点で確定できている条件(ある型で表現できる数の範囲など)や、実行時に確定する条件(たとえば、ある関数が、渡されてくる引数の値について想定している範囲)のことで、こういった条件をソースコード内に記述しておきます。
条件が満たされていれば、特に何も起こりませんが、条件が満たされていないことが検出されると、コンパイルを失敗させたり、実行を停止させたりします。
コンパイル時に判定を行うアサートは、コンパイル時アサート(静的アサート)などと呼ばれることがあります。これに対して、実行時に判定を行うアサートを、実行時アサートと呼ぶことがあります。
実行時のアサートは基本的に、プログラムの開発中に使う機能です。デバッグを終えるまでのあいだに、前提条件を満たしていない箇所は解決されていることを前提に、リリースするプログラムでは無効化することが多いです。
アサートの機能は、プログラミング言語が仕様として用意していたり、ライブラリやフレームワークの形で用意されていたりします。
C言語の標準ライブラリには、実行時アサートとして、assert という名前のマクロが定義されています(C言語編第30章)。
また、C11 では言語機能として _Static_assert が、標準ライブラリとして static_assert が追加されています。これはコンパイル時アサートです(C言語編第30章)。
C++ の標準ライブラリには、実行時アサートとして、assert という名前のマクロが定義されています。
また、C++11 で、言語機能として static_assert が追加されています。これはコンパイル時アサートです。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |