为什么 int vs 布尔类型检查失败

Why does int vs bool typecheck fail

本文关键字:检查 失败 类型 布尔 int vs 为什么      更新时间:2023-10-16

我最近错误地将 int 声明为 bool,并且没有从 g++ 编译器那里得到任何类型错误。然后我再次尝试进行测试,它编译得很好。有人可以解释为什么这是可以接受的行为吗?至少当我尝试++布尔值或将bool分配为 integer 时,编译器不应该给我警告吗?

int main(int argc, char** argv)
{
    bool x = 0;
    x++;
    x++;
    cout << x << "n";
    return 0;
}
  • 使用旧标准(C++98)这不是错误。
  • 随着新标准的增加,布尔值被弃用。(C++11)
  • 您可以在布尔值上使用递增,直到 C++17。