三回啊三回
题目描述
“函数” call3
接受一个可以调用的参数 f
(即 f
可以出现在函数调用运算符左侧),f
不需要参数。执行 call3(f)
时,将 f
调用三遍。
关于输入
无
关于输出
见样例输出
参考答案
#include <iostream>
template <typename T>
void call3(T f) {
f();
f();
f();
}
void f1() {
int x = 0;
std::cout << ++x << std::endl;
}
void f2() {
static int x = 0;
std::cout << ++x << std::endl;
}
struct F34 {
int x{0};
void operator()() {
std::cout << ++x << std::endl;
}
};
F34 f3, f4;
int main() {
int v = 42;
auto f5 = [&]() {
std::cout << ++v << std::endl;
};
call3(f1);
call3(f2);
call3(f3);
call3(f4);
call3(f5);
}