C++ logical & operator

前端 未结 4 1869
不知归路
不知归路 2021-01-17 22:03

Is there a logical & operator in C++? e.g. an operator that works just as && except that it also evaluates later arguments even if some preceding ones have alrea

4条回答
  •  灰色年华
    2021-01-17 22:32

    There is no such "always execute" operator in C++.

    My first inclination is that instead of looking for a new operator, you should re-evaluate what your methods do to eliminate any side effects that mandate they be executed. It may be possible in this way to simply be able to use && and be happy.

    However if you actually want to do all the operations in sequence and then see if they all succeeded, probably Luchian Grigore's answer would be the best. It clearly delineates that it's sequential steps that always need to execute. There is one more option which may or may not be less clear:

    // Each method needs to execute in sequence but we use "success" to track overall success. The order of operands to `operator&&` shouldn't be changed.
    bool success = f1();
    success = f2() && success;
    success = f3() && success;
    
    if(success) ...
    

提交回复
热议问题