D言語 Advent Calendar 2013の三日目の記事です。 更に、Aizu Advent Calendar 2013の三日目の記事でもあります。 D言語には、簡単な単体テスト機能が言語仕様に含まれています。そのおかげで、気軽に関数やクラスの単体テストを書くことが出来ます。 その一方、D言語にはコンパイル時関数実行(CTFE)という機能があります。名前の通り、コンパイル時に関数を実行する機能です。今となっては、「標準ライブラリのこの関数がCTFE出来ない!これはバグだ!!」とも言われるほど、関数がCTFE出来ることは重要になりつつあります。 関数がCTFEableかどうか、またはCTFEにおいて正常に動作するか、単体テストを使って、実行時と同じようにチェック出来るととても助かります。が、残念ながらD言語の単体テストは実行時にしか実行してくれません。 __traits(getUnit