<initializer_list>,带有对函数的引用

时间:2017-12-07 14:48:45

标签: c++ initializer-list

我想问一下是否有机会填写<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;风格,但我无法弄清楚正确的语法。它甚至可能吗?

由于 好友

1 个答案:

答案 0 :(得分:1)

像这样:

#include <initializer_list>

void refce(std::initializer_list<double (*)(double)> il, double in)
{
    for (auto* f : il)
    {
        f(in);
    }
}