Byerkut さんのお気に入り関数 assert() 。しかしながら、これの出力は式になってしまうので意味を理解するのにちょっと時間がかかります。これにエラーメッセージを渡して意味を伝えやすくしようというテクニックとのことです。
assert("argument は1以上じゃないとだめだ" && (0 <argument)); assert("pointer は NULL は受け取らない" && (pointer != NULL));
文字列は真と認識される点を利用したテクニックですね。「到達してはいけない」系の assert() は次のように書けます。
assert(!"ここに到達してはいけない!絶対 break されるはずなんだ!");
ちなみに PHP だと文字列は0と認識される可能性が高い点に注意です。 PHP は文字列中に数字が一個も入ってないと0なのです。
Contributions