百合分の効能
水曜日に一日中調査して、結局修正できなかったバグが、水曜深夜の百合分補給により、ものの1時間でFixしました。恐るべき百合効果。
で、今日のネタは、上記バグじゃない謎バグについて。コンパイラは文法しか見てくれない(当然だけど)の例。switch文が入れ子になってたんだけど、
switch(value1){ case 1: ...; break; } case 2: switch(value2){ case A: ...; break; case B: ...; break; break; }
実際はもっと括弧とかあるから見づらいんですけど、なんか括弧の位置がとんでもないところに。正しくは5行目の括弧が後ろから2行目に来なきゃいけないんですけどね。インデントあっているのに何でだろう?しかも、このケース、たちの悪いことに、case 2:ってのはただのラベルだから、これでもコンパイルは通ってしまうらしい。チェックレベル上げればWarning位出るかもしれないけど。
きっと百合分が足りない時に作ったソースでしょう。