Static-if
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/02 08:30 UTC 版)
「ジェネリックプログラミング」の記事における「Static-if」の解説
D言語はコンパイル時に条件をチェックするstatic if構文を提供する。これはC++の#ifと#endifのプリプロセッサマクロに少し似ている。static ifはテンプレート引数や、それらを使用したコンパイル時関数実行の結果を含めた全てのコンパイル時の値にアクセスできるというのがその主要な違いである。従ってC++でテンプレートの特殊化を必要とする多くの状況でも、D言語では特殊化の必要なく容易に書ける。D言語の再帰テンプレートは通常の実行時再帰とほぼ同じように書ける。これは典型的なコンパイル時の関数テンプレートに見られる。 template Factorial(ulong n) { static if (n <= 1) const Factorial = 1u; else const Factorial = n * Factorial!(n - 1);}
※この「Static-if」の解説は、「ジェネリックプログラミング」の解説の一部です。
「Static-if」を含む「ジェネリックプログラミング」の記事については、「ジェネリックプログラミング」の概要を参照ください。
- Static-ifのページへのリンク