在if语句的条件块中调用布尔方法
calling a boolean method inside the condition block of if statement?
我正在定义一个模板类的函数,该函数使用列表类。
我在这个list类中定义了erase函数,如果erase成功则返回true,如果erase失败则返回false,我在这里所要做的就是调用这个函数。
但是,我需要计算列表的大小n,并且只有当list.erase(itr.list_iter)调用返回true时,我才希望减少它。
更简洁地说,以下代码行是否只在成功时调用list.erase(itr.list_iter)函数并递减n并调用refresh() ?或者它实际上不擦除列表中的元素?
void erase(iterator itr) {
if(list.erase(itr.list_iter)) {
--n;
refresh();
}
}
可以。它将永远被调用。它相当于:
{
bool res = foo();
if(res)
{
do_stuff();
}
}
你甚至可以在if里面声明变量:
if(int res = int_foo())
{
do_smth(res);
}
else // res == 0
{
do_smth_else();
}
这是写在每本书=)
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 如何确保在使用基于布尔值的两个方法之一调用方法时避免分支预测错误
- 我无法在 c++ 中调用布尔函数(已关闭)
- 使用布尔值稍后返回还是调用函数并立即返回更快?C++
- 在C 中调用布尔函数
- 调用布尔函数但收到错误"no matching function to call"?
- 调用模板布尔函数的最佳方法
- 为什么此 stl 函数调用会导致不正确的布尔计算
- 对布尔值使用逐位not运算符(~)是否会调用Undefined Behavior
- C++布尔值或函数调用表达式的惰性计算
- 无法使用数组程序调用布尔函数
- 布尔函数.调用它并使用True或false
- 在函数调用中处理多个布尔变量的更好方法
- 我如何在c++中创建一个类,当初始化时,当调用其名称时返回布尔值,但没有显式的函数调用,如ifstream
- Android JNI错误:调用带有布尔参数的函数会导致崩溃
- 在if语句的条件块中调用布尔方法
- 如何根据布尔类型成员函数的返回值调用结构成员函数
- 在不带布尔条件的Update()中调用一次