我如何在同一行中打印并返回?

问题描述 投票:0回答:2

我知道这样的事情是可能的,我只是忘记了如何正确地做到这一点。

if (true)
    printf("something"), return;
c++ syntax
2个回答
7
投票

return不是表达式,因此它不能是逗号运算符的操作数。

这里是一个(普通的)单行版本,可以正常工作:

if (true) { printf("something"); return; }

((注:单线性被高估了。写是为了提高可读性,而不是简洁,如果它们是一致的,则是双赢。当然,我本人应该更经常听从我的建议...)

编辑:您可能正在考虑]的一些变化>

if (true) return (void) printf("something"); // for void functions
if (true) return printf("something"), 0;     // for an e.g. int function

可行,但丑陋且笨拙,因为它掩盖了返回的内容。我不赞成使用它们。


0
投票

如果返回类型为std::list<int>,则需要返回std::list<int>。您不能简单地不返回任何内容,这就是您的代码当前正在执行的操作。

© www.soinside.com 2019 - 2024. All rights reserved.