c++ - 如何在 C++17 中将“else-if”与初始化程序一起使用?
问题描述
从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)
应该是可以做到的。
推荐阅读
- bigbluebutton - 9+小时的录音
- angular - Angular - *ngIf 不评估
- python - 在虹膜数据中应用 scipy zscore
- networking - 为什么在一台主机上运行多个 JMeter 实例会增加吞吐量?
- javascript - 并行运行 2 级深度的 Promise 数组 React Typescript
- asp.net - 在 Chrome 中单击几次后页面变得无响应,但在 Firefox 中没有
- javascript - 在单个智能手机上部署应用程序
- react-native-dropdown-picker - 如何使用 useRef 在 react-native-dropdown-picker 中动态选择下拉列表并将值附加到它
- react-native-dropdown-picker - 如何使用 useRef 在 react-native-dropdown-picker 中动态选择下拉列表并将值附加到它
- jquery - 是否可以添加自定义文本框来代替 DataTable 默认搜索框?