来自 Lua 背景,编写 C++ 代码时仍在习惯格式。 如何正确格式化 if/条件表达式,如下面我的示例所示。
这将正确运行,但会出现不理想的警告:
return (boolean == true) and init() or 0;
突出显示警告:
expected a ';'C/C++ (between "(boolean == true)" "and")
最佳答案
and
和 or
关键字被认为有点过时。它们是现代 C++ 中技术上有效的 C++ 关键字(似乎是从 C++98 开始)。您必须使用非常古老的 C++ 编译器,该编译器是在它们添加到 C++ 之前编写的。它们以及它们的用途从未流行起来。经典的 &&
和 ||
运算符继续占据主导地位,不会消失。
因此:虽然这个表达式在逻辑上确实应该等价于 boolean && init()
,但您可能需要考虑为更新 C++ 编译器分配更高的优先级,如果这确实是编译错误的原因。
关于c++ - C++ 中的返回表达式检查条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72835974/