bool型に対してインクリメントすると固定でtrueになる仕様がありましたが、この仕様はC++98時点で非推奨になっていました。C++1zではこの機能が削除されます。 以下のようなコードは、C++1zではコンパイルが通らなくなりますので注意してください。 #include <cassert> int main() { bool b1 = false; bool b2 = true; // C++98から非推奨だがC++14まで合法、 // C++1zではコンパイルエラー ++b1; b2++; assert(b1 == true); assert(b2 == true); } ちなみに、bool型に対するデクリメントは元々できません。 仕様としては、「算術型 (arithmetic type) に対してインクリメントできる」と書かれていたものが「(CV修飾された) bool型以外の算術型に