C++每次执行函数时都不带if检查

C++ execute function without if check each time

本文关键字:if 检查 执行 函数 C++      更新时间:2024-09-29

假设我有一个布尔变量(全局或局部(&存在的函数。该函数应仅在bool变量为true时执行。由于该功能被重复多次&如果bool变量每次都为true,我需要一种不用执行的方法来执行这个函数。

function();
bool executeFun = true;
if(executeFun){
function();
}
..
if(executeFun){
function();
}

需要执行function(),而无需每次检查bool。谢谢:(

将其包装在另一个函数中。

auto perhaps = executeFun ? function : +[](){};
perhaps();
perhaps();
perhaps();

您可以使用在检查条件后设置的函数指针:

#include <iostream>
using func_t = void(*)();
int main() {
func_t p = []{};

p(); // does nothing

if(true) p = []{ std::cout << "doing somethingn"; };
p(); // does something
}

您能在函数内部移动bool检查吗?

void function();
bool executeFun = true;
void function() {
if (!executeFun) return;
...
}
...
function();
...
function();