我想问一下是否有机会填写<initializer_list>
并提及函数。让我们说我有功能:
double refce( double (&f1)(double), double in ){
return f1(in);
}
而不是像以下一样调用它:
double a[3];
a[0] = refce( sin, 3.1415);
a[1] = refce( cos, 3.1415);
a[2] = refce( tan, 3.1415);
是否可以编写像这样工作的函数:
double a*;
a = refce_list( {sin, cos, tan}, 3.1415);
我曾尝试使用初始化列表,但显然我不知道要将类型粘贴到列表中。我也试过#include&#34; cstdarg&#34;风格,但我无法弄清楚正确的语法。它甚至可能吗?
由于 好友
答案 0 :(得分:1)
像这样:
#include <initializer_list>
void refce(std::initializer_list<double (*)(double)> il, double in)
{
for (auto* f : il)
{
f(in);
}
}