この変換はどの程度移植性がありますか。両方のアサーションがパスすることを確認できますか?
int x = 4<5;
assert(x==1);
x = 4>5;
assert(x==0);
理由は聞かないでください。私はそれが醜いことを知っています。ありがとうございました。
assert( 4 < 5);
assert(!( 4 > 5));
(4 < 5) ? 1 : 0
ブール値を0または1に本当に変換する必要がある場合は、おそらく書き込みを行います。優れたコンパイラーは同じマシンコードを生成する可能性が高く、人間の読者にとってはより明確です。
assert(x!=0)
ます。bool(true)が移植性をint(1)に変換したとしても、「not false」アサートはより読みやすい式を持っています。