C++ 条件变量的声明
示例
在forandwhile循环的条件下,还可以声明一个对象。在循环结束之前,该对象将一直处于作用域内,并将在循环的每次迭代中保持不变:
for (int i = 0; i < 5; ++i) {do_something(i);
}
// 我不再是范围。
for (auto& a : some_container) {
a.do_something();
}
// a不再是范围。
while(std::shared_ptr<Object> p = get_object()) {
p->do_something();
}
// p不再是范围。
但是,不允许do...while循环执行相同的操作。相反,请在循环之前声明变量,并(可选)将变量和循环都包含在本地作用域中,如果您希望变量在循环结束后超出作用域:
//这不编译do {
s = do_something();
} while (short s > 0);
// 好
short s;
do {
s = do_something();
} while (s > 0);
这是因为循环的语句部分do...while(循环的主体)是在到达表达式部分(即while)之前求值的,因此,在循环的第一次迭代过程中,表达式中的任何声明都是不可见的。
以上是 C++ 条件变量的声明 的全部内容, 来源链接: utcz.com/z/330649.html