D言語で(a == 1 && a == 2 && a == 3)をtrueにする

D言語で無かったので.

import std.stdio;

void main() {
    auto a = new N();
    if (a == 1 && a == 2 && a == 3) {
        writeln("true");
    }
}

class N {
    bool opEquals(int rhs) {
        return true;
    }
}

opEqualsによるオーバーロードが可能なので,何も奇をてらう必要はありませんね.

D言語のことをほとんど忘却してしまっていたので有効なDソースコードを書くのに少し時間がかかりました.

このエントリーをはてなブックマークに追加 fb-like g-plusone pocket