c++中返回表达式检查条件



在编写c++代码时仍然习惯格式化,来自Lua背景。如何正确地格式化if/条件表达式,如下所示。

这将正确运行,但有警告,这是不理想的:

return (boolean == true) and init() or 0;

突出显示的警告:

expected a ';'C/C++ (between "(boolean == true)" "and")

andor是被认为有点过时的关键字。在现代c++中,它们在技术上是有效的c++关键字(从c++ 98开始)。您必须使用非常旧的c++编译器,该编译器是在它们被添加到c++之前编写的。它们和它们的用法从未流行起来。经典的&&||操作符继续占据主导地位,不会去任何地方。

因此:虽然这个表达式在逻辑上应该等同于boolean && init(),但如果这确实是编译错误的原因,您可能需要考虑为更新c++编译器分配更高的优先级。

最新更新