【发布时间】:2019-12-06 22:33:15
【问题描述】:
在 c++17 中,您可以执行以下操作:
if ( init-statement(optional); condition )
根据https://en.cppreference.com/w/cpp/language/if
但是我的编译器 (vs2019) 允许
if ( init-statement )
init 语句也是条件。我找不到这在任何地方都有记录,这真的可以保证工作吗?
【问题讨论】:
-
怎么
init-statement也是条件?什么意思? -
在您提供的 cppreference 链接中,
condition被允许“使用大括号或等号初始化程序声明单个非数组变量。”,这就是这里发生的情况。这是一个早于 C++17 的 C++ 特性。 -
给出一个编译器允许的代码的真实示例会改善问题
-
你真的应该举一个例子 (MVCE) 你用真实的代码尝试过什么。否则,我们不确定您对 init-statement 的解释,因此这是一个糟糕的问题)
标签: c++ if-statement c++17