在 c++17 中,您可以执行以下操作:
if ( init-statement(optional); condition )
Run Code Online (Sandbox Code Playgroud)
根据https://en.cppreference.com/w/cpp/language/if
但是我的编译器(vs2019)允许
if ( init-statement )
Run Code Online (Sandbox Code Playgroud)
其中 init 语句也是条件。我找不到任何地方都有记录,这真的保证有效吗?
在 C++ 中,可以进行很多condition你不希望在那里被允许的事情。甲condition例如可以是int i = 20。int i = 20解析为可以根据上下文转换为布尔值并进行测试的值。
所以并不是你的编译器允许init-statement没有condition. 正是 C++ 从一开始就允许condition语法包括声明变量,而您的代码只是使用它。
| 归档时间: |
|
| 查看次数: |
283 次 |
| 最近记录: |