在switch语句中通过引用返回

时间:2015-12-11 17:13:04

标签: c++ c++11 syntax reference switch-statement

我希望通过引用返回到交换机内部的变量来返回,例如:

sometype & getbar();

void foo() {
        switch ( {statement} ) {
        case {statement}:
            sometype & handle = getbar();
        ...

但我收到了编译错误:

  标签

跳过'标识符'的初始化      “默认”标签

跳过“标识符”的初始化

看起来不可能这样做:

void foo() {
        sometype & handle;
        switch ( {statement} ) {
        case {statement}:
            handle = getbar();
        ...

因为引用变量需要初始化。

有没有办法保持switch语句?

1 个答案:

答案 0 :(得分:5)

是的,有。将case语句的主体括在括号中,如下所示:

case {statement}:
{
    sometype & handle = getbar();
    ...
}