C でブール値をエミュレートするには、次のようにします。
int success;
success = (errors == 0 && count > 0);
if(success)
...
以下をstdbool.h
含めると、次のことが可能になります。
bool success;
success = (errors == 0 && count > 0) ? true : false;
if(success)
...
私が理解していることから、論理演算子と比較演算子は 1 または 0 を返すstdbool.h
必要があります。また、定数はtrue == 1
and false == 0
.
したがって、次のように動作するはずです。
bool success;
success = (errors == 0 && count > 0);
if(success)
...
そして、私がテストしたコンパイラで動作します。しかし、それが移植可能なコードであると仮定しても安全でしょうか? (存在すると仮定stdbool.h
)
bool は内部型であるため、C++ コンパイラでは状況が異なりますか?