Can (a==1)&&(a==2)&&(a==3) evaluate to true? (and can it be useful?)

前端 未结 8 1346
北荒
北荒 2021-01-15 11:34

Inspired by another question regarding java-script language. Can the expression

 (a==1)&&(a==2)&&(a==3)

evaluate to true i

8条回答
  •  伪装坚强ぢ
    2021-01-15 12:19

    Could be somewhat useful.

    #include 
    #include 
    #include 
    using namespace std;
    
    struct Foo {
        std::vector v = {1,2,3};
    };
    
    bool operator==(const Foo& foo, int i) {
        return std::any_of(foo.v.begin(), foo.v.end(), [=](int v){ return v == i; });
    }
    
    int main() {
        Foo a;
    
        if (a==1 && a==2 && a==3)
            cout << "Really??" << endl;
        return 0;
    }
    

提交回复
热议问题