官术网_书友最值得收藏!

If and Switch local scoped variables

There is an interesting new feature that allows you to declare a local variable bound to the if and switch statements' block of code. The scope of the variable used in the if and switch statements will go out of scope outside the respective blocks. It can be better understood with an easy to understand example, as follows:

#include <iostream>
using namespace std;

bool isGoodToProceed( ) {
return true;
}

bool isGood( ) {
return true;
}

void functionWithSwitchStatement( ) {

switch ( auto status = isGood( ) ) {
case true:
cout << "\nAll good!" << endl;
break;

case false:
cout << "\nSomething gone bad" << endl;
break;
}

}

int main ( ) {

if ( auto flag = isGoodToProceed( ) ) {
cout << "flag is a local variable and it loses its scope outside the if block" << endl;
}

functionWithSwitchStatement();

return 0;
}

The preceding code can be compiled and the output can be viewed with the following commands:

g++-7 main.cpp -std=c++17
./a.out

The output of the preceding program is as follows:

flag is a local variable and it loses its scope outside the if block
All good!
主站蜘蛛池模板: 扶沟县| 吕梁市| 林芝县| 罗山县| 巴东县| 盈江县| 乡宁县| 札达县| 青冈县| 鄂尔多斯市| 澄迈县| 宾川县| 德江县| 桐城市| 稷山县| 双牌县| 通化市| 石城县| 诸城市| 屏山县| 横山县| 宜川县| 腾冲县| 泊头市| 定结县| 稷山县| 固安县| 买车| 东方市| 永顺县| 民县| 克什克腾旗| 峨边| 泸州市| 安新县| 东安县| 贺兰县| 韶关市| 城固县| 昭通市| 西乡县|