C++ では、ある値 x が 2 つの制限の間にあるかどうかを判断する通常の方法は次のとおりです。
//This is (A)
double x = 0.0d;
double lower = -1.0d;
double upper = +1.0d;
if(x > lower && x < upper){
// Do some stuff
}
しかし、今日、私はこれができることを偶然発見しました:
// This is (B)
double x = 0.0d;
double lower = -1.0d;
double upper = +1.0d;
if(lower < x < upper){
// Do some stuff
}
うまく機能しているようですが、「lower < x < upper」でこれが行われたことは聞いたことがありません。これにより、期待どおりに実行可能なコードが生成されますか? IE、(A) は (B) と同等ですか?
多くの人はこれについて知らないと思いますが、それはおそらくコンパイラが (A) を (B) とは異なる方法で解釈するためだと思います。これでしょ?