D言語 Advent Calendar 2013の三日目の記事です。 更に、Aizu Advent Calendar 2013の三日目の記事でもあります。 D言語には、簡単な単体テスト機能が言語仕様に含まれています。そのおかげで、気軽に関数やクラスの単体テストを書くことが出来ます。 その一方、D言語にはコンパイル時関数実行(CTFE)という機能があります。名前の通り、コンパイル時に関数を実行する機能です。今となっては、「標準ライブラリのこの関数がCTFE出来ない!これはバグだ!!」とも言われるほど、関数がCTFE出来ることは重要になりつつあります。 関数がCTFEableかどうか、またはCTFEにおいて正常に動作するか、単体テストを使って、実行時と同じようにチェック出来るととても助かります。が、残念ながらD言語の単体テストは実行時にしか実行してくれません。 __traits(getUnit
![D言語で、コンパイル時単体テスト - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/30d7339921ae5ba5af7ff9b46d277e9262b3a5bd/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-f625e957b80c4bd8dd47b724be996090.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9RCVFOCVBOCU4MCVFOCVBQSU5RSVFMyU4MSVBNyVFMyU4MCU4MSVFMyU4MiVCMyVFMyU4MyVCMyVFMyU4MyU5MSVFMyU4MiVBNCVFMyU4MyVBQiVFNiU5OSU4MiVFNSU4RCU5OCVFNCVCRCU5MyVFMyU4MyU4NiVFMyU4MiVCOSVFMyU4MyU4OCZ0eHQtY29sb3I9JTIzM0EzQzNDJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDbWlkZGxlJnM9ZDY5MjQwYjM5NmMyZjQ5ZTU0M2ZkODI1ZTc1NTE5YmI%26mark-x%3D142%26mark-y%3D151%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQweW91eGtlaSZ0eHQtY29sb3I9JTIzM0EzQzNDJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NDFhNDliY2ZjMTRiZDliODc0MGE2Mzg1NzY3ZTIxNGE%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D9b35b4a087d5b510e1f35a6d5f79921b)