【发布时间】:2014-04-29 17:58:23
【问题描述】:
我知道 C++03 不允许在 switch 块中定义变量而不使用 花括号。
const int i = ...
switch (i) { case 0: int j = 0; break; } // 1. error here
switch (i) { case 0: { int j = 0; } break; } // 2. ok
关于新的 C++11 标准是什么? 它允许第一种形式吗? 我也可以这样写吗:
switch (i)
{
case 0: int j = 0; break;
case 1: int j = 0; break;
case 2: int j = 0; break;
}
【问题讨论】:
-
不,还是要使用块。此外,您的第一个示例有点令人困惑,仅供参考。
-
第一个例子有什么错误?在我看来很好。或者您的意思是在任何地方都使用
i,而不是i和j? -
我只是想说我们有选择器 - i 并定义了另一个名为 distictly 的变量 - j
标签: c++ variables c++11 switch-statement definition