从cpp 参考:https : //en.cppreference.com/w/cpp/language/if,我似乎不能这样做:
if (cond)
{}
else if (init; cond) // <<--- init not allowed with "else if"
{}
我以一种相当愚蠢的方式绕过它:
if (cond)
{}
else if ([]() -> bool
{
init;
if (cond)
{
// Do something in the same scope as 'init'
return true;
}
return false;
}())
{}
我是否在这里遗漏了一些关于如何使用 C++17“正确”执行此操作的明显内容?
C++ 没有“else if”语句。相反,它是一个单独的else
语句,后跟一个单独的if
语句。
一条链子
if (cond1)
{
...
}
else if (cond2)
{
...
}
相当于
if (cond1)
{
...
}
else
{
if (cond2)
{
...
}
}
所以使用else if (init; cond)
应该是可以做到的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句